/[svn]/linuxsampler/trunk/configure.ac
ViewVC logotype

Diff of /linuxsampler/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 133 by capela, Fri Jun 18 14:29:02 2004 UTC revision 714 by schoenebeck, Sat Jul 23 21:55:38 2005 UTC
# Line 1  Line 1 
1  AC_INIT(configure.in)  AC_INIT(configure.in)
2    
3    #------------------------------------------------------------------------------------
4    # LinuxSampler's / liblinuxsampler's "official" release version:
5    
6    LINUXSAMPLER_RELEASE_MAJOR=0
7    LINUXSAMPLER_RELEASE_MINOR=3
8    LINUXSAMPLER_RELEASE_BUILD=3
9    
10    #------------------------------------------------------------------------------------
11    # The following is the libtool / shared library version. This doesn't have to
12    # do anything with the release version. It MUST conform to the following rules:
13    #
14    #  1. Start with version information of `0:0:0' for each libtool library.
15    #  2. Update the version information only immediately before a public release of
16    #     your software. More frequent updates are unnecessary, and only guarantee
17    #     that the current interface number gets larger faster.
18    #  3. If the library source code has changed at all since the last update, then
19    #     increment revision (`c:r:a' becomes `c:r+1:a').
20    #  4. If any interfaces have been added, removed, or changed since the last update,
21    #     increment current, and set revision to 0.
22    #  5. If any interfaces have been added since the last public release, then increment
23    #     age.
24    #  6. If any interfaces have been removed since the last public release, then set age
25    #     to 0.
26    
27    LIBLINUXSAMPLER_LT_CURRENT=0
28    LIBLINUXSAMPLER_LT_REVISION=0
29    LIBLINUXSAMPLER_LT_AGE=0
30    SHARED_VERSION_INFO="$LIBLINUXSAMPLER_LT_CURRENT:$LIBLINUXSAMPLER_LT_REVISION:$LIBLINUXSAMPLER_LT_AGE"
31    
32    AM_PROG_LIBTOOL
33    
34    AC_SUBST(SHLIB_VERSION_ARG)
35    AC_SUBST(SHARED_VERSION_INFO)
36    
37  AC_C_BIGENDIAN  AC_C_BIGENDIAN
38  AC_CANONICAL_SYSTEM  AC_CANONICAL_SYSTEM
39    
# Line 8  AC_SUBST(target_cpu) Line 43  AC_SUBST(target_cpu)
43  AC_SUBST(target_os)  AC_SUBST(target_os)
44  AC_SUBST(target_vendor)  AC_SUBST(target_vendor)
45    
46  echo -n "checking whether x86 architecture... "  
47    ###########################################################################
48    # General Checks
49    
50    AC_MSG_CHECKING([whether x86 architecture])
51  def_arch_x86=0  def_arch_x86=0
52  case $target_cpu in  case $target_cpu in
53    "i386" | "i486" | "i586" | "i686" | "i786")    "i386" | "i486" | "i586" | "i686" | "i786")
# Line 19  case $target_cpu in Line 58  case $target_cpu in
58  esac  esac
59  AC_DEFINE_UNQUOTED(ARCH_X86,$def_arch_x86,[Define to 1 if you build for x86 architecture.])  AC_DEFINE_UNQUOTED(ARCH_X86,$def_arch_x86,[Define to 1 if you build for x86 architecture.])
60    
61    # determine the right gcc switch for CPU specific optimizations
62    CXX_CPU_SWITCH=
63    if test "$def_arch_x86" = 1; then
64      CXX_CPU_SWITCH="-march=$target_cpu"
65    elif test "$target_cpu" = "powerpc"; then
66      CXX_CPU_SWITCH="-arch=$target_cpu"
67    fi
68    AC_SUBST([CXX_CPU_SWITCH])
69    
70    AC_MSG_CHECKING([whether UNIX98 compatible])
71    AC_LANG_SAVE
72    AC_LANG_C
73    AC_TRY_RUN([
74    #ifndef _GNU_SOURCE
75    #define _GNU_SOURCE 1
76    #endif
77    #include <features.h>
78    void main(void) {
79    #if _XOPEN_SOURCE >= 500
80    exit(0); /* UNIX98 compatible */
81    #else
82    exit(-1); /* not UNIX98 compatible */
83    #endif
84    }
85    ],
86    have_unix98="yes",
87    have_unix98="no",
88    have_unix98="no"
89    )
90    AC_LANG_RESTORE
91    AC_MSG_RESULT([$have_unix98])
92    if test "$have_unix98" = "no"; then
93        if test "x$HAVE_UNIX98" = "x"; then
94            echo "LinuxSampler only runs on UNIX98 compatible systems, which is mandatory for"
95            echo "pthread_mutexattr_settype() call in Mutex.cpp. You may want to run
96            echo "./configure with environment variable HAVE_UNIX98=1 in case you think you
97            echo "have a UNIX98 compatible system."
98            exit -1;
99        fi
100    fi
101    
102    # Checks for available audio and MIDI systems / drivers
103    # (we throw an error if there's not at least one system for audio output and MIDI input available)
104    have_midi_input_driver="false"
105    have_audio_output_driver="false"
106    
107  AC_CHECK_HEADER(alsa/asoundlib.h,  AC_CHECK_HEADER(alsa/asoundlib.h,
108      AC_CHECK_LIB(asound, main,      AC_CHECK_LIB(asound, main,
109                               have_alsa="true"                               have_alsa=1
110                               ,                               ,
111                               have_alsa="false"                               have_alsa=0
112                  )                  )
113                  ,                  ,
114                  have_alsa="false"                  have_alsa=0
115  )  )
116  if test "$have_alsa" = "false"; then  if test "$have_alsa" = "1"; then
117      echo "Alsa not installed!"      have_midi_input_driver="true"
118      echo "Sorry, LinuxSampler only supports Alsa sound drivers at the moment!"      have_audio_output_driver="true";
     exit -1;  
119  fi  fi
120    AM_CONDITIONAL(HAVE_ALSA, test $have_alsa = "1")
121    AC_DEFINE_UNQUOTED(HAVE_ALSA,$have_alsa,[Define to 1 if you have ALSA installed.])
122    
123  echo -n "checking Alsa version... "  echo -n "checking Alsa version... "
124  AC_LANG_SAVE  AC_LANG_SAVE
# Line 87  AC_DEFINE_UNQUOTED(ALSA_MAJOR,$alsa_majo Line 171  AC_DEFINE_UNQUOTED(ALSA_MAJOR,$alsa_majo
171  AC_DEFINE_UNQUOTED(ALSA_MINOR,$alsa_minor,[Define to the minor version number of your Alsa installation.])  AC_DEFINE_UNQUOTED(ALSA_MINOR,$alsa_minor,[Define to the minor version number of your Alsa installation.])
172  AC_DEFINE_UNQUOTED(ALSA_SUBMINOR,$alsa_subminor,[Define to the subminor version number of your Alsa installation.])  AC_DEFINE_UNQUOTED(ALSA_SUBMINOR,$alsa_subminor,[Define to the subminor version number of your Alsa installation.])
173    
   
174  # JACK  # JACK
175  PKG_CHECK_MODULES(JACK, jack, HAVE_JACK=true, HAVE_JACK=false)  PKG_CHECK_MODULES(JACK, jack, HAVE_JACK=true, HAVE_JACK=false)
176  AC_SUBST(JACK_LIBS)  AC_SUBST(JACK_LIBS)
# Line 95  AC_SUBST(JACK_CFLAGS) Line 178  AC_SUBST(JACK_CFLAGS)
178  if test $HAVE_JACK = false; then  if test $HAVE_JACK = false; then
179      HAVE_JACK=0;      HAVE_JACK=0;
180  else  else
181      HAVE_JACK=1;      HAVE_JACK=1
182        have_audio_output_driver="true";
183        AC_CHECK_LIB(jack, jack_client_name_size, [AC_DEFINE(HAVE_JACK_CLIENT_NAME_SIZE, 1, [Define to 1 if you have the `jack_client_name_size' function.])], , $JACK_LIBS)
184  fi  fi
185    AM_CONDITIONAL(HAVE_JACK, test $HAVE_JACK = 1)
186  AC_DEFINE_UNQUOTED(HAVE_JACK,$HAVE_JACK,[Define to 1 if you have JACK installed.])  AC_DEFINE_UNQUOTED(HAVE_JACK,$HAVE_JACK,[Define to 1 if you have JACK installed.])
187    
188    # MidiShare (Linux, OS X, Windows)
189    AC_CHECK_HEADER(MidiShare.h,
190        AC_CHECK_LIB(MidiShare, MidiCountEvs,
191                                have_midishare=1,
192                                have_midishare=0
193                    )
194                    ,
195                    have_midishare=0
196    )
197    if test "$have_midishare" = "1"; then
198        have_midi_input_driver="true"
199    fi
200    AM_CONDITIONAL(HAVE_MIDISHARE, test $have_midishare = "1")
201    AC_DEFINE_UNQUOTED(HAVE_MIDISHARE,$have_midishare,[Define to 1 if you have MidiShare installed.])
202    
203    # CoreMIDI (OS X)
204    AC_CHECK_HEADER(CoreMIDI/CoreMIDI.h,
205                    have_coremidi=1,
206                    have_coremidi=0
207    )
208    if test "$have_coremidi" = "1"; then
209        have_midi_input_driver="true"
210    fi
211    AM_CONDITIONAL(HAVE_COREMIDI, test $have_coremidi = "1")
212    AC_DEFINE_UNQUOTED(HAVE_COREMIDI,$have_coremidi,[Define to 1 if you have CoreMIDI installed.])
213    
214    # Check presence of libgig
215    libgig_version="2.0.1"
216    PKG_CHECK_MODULES(GIG, gig >= $libgig_version, HAVE_GIG=true, HAVE_GIG=false)
217    if test "$HAVE_GIG" = "false"; then
218        echo "Required libgig version not found!"
219        echo "You need to have libgig version ${libgig_version} installed!"
220        exit -1;
221    else
222        echo "yes, found libgig $libgig_version"
223    fi
224    AC_SUBST(GIG_CFLAGS)
225    AC_SUBST(GIG_LIBS)
226    
227    # SQLITE3
228    PKG_CHECK_MODULES(SQLITE3, sqlite3, HAVE_SQLITE3=true, HAVE_SQLITE3=false)
229    AC_SUBST(SQLITE3_LIBS)
230    AC_SUBST(SQLITE3_CFLAGS)
231    if test $HAVE_SQLITE3 = false; then
232        HAVE_SQLITE3=0;
233        echo "no, support for instrument DB will be disabled!"
234    else
235        HAVE_SQLITE3=1
236        echo "yes"
237    fi
238    AM_CONDITIONAL(HAVE_SQLITE3, test $HAVE_SQLITE3 = 1)
239    AC_DEFINE_UNQUOTED(HAVE_SQLITE3,$HAVE_SQLITE3,[Define to 1 if you have SQLITE3 installed.])
240    
241    if test "$have_midi_input_driver" = "false"; then
242        echo "No supported MIDI input system found!"
243        echo "Sorry, LinuxSampler only supports the following MIDI drivers at the moment:"
244        echo "ALSA, MIDIShare, CoreMIDI."
245        echo "If you think you have one of those available on your system, make sure you"
246        echo "also have the respective development (header) files installed."
247        exit -1;
248    fi
249    if test "$have_audio_output_driver" = "false"; then
250        echo "No supported audio output system found!"
251        echo "Sorry, LinuxSampler only supports ALSA and JACK as audio output driver at the moment!"
252        exit -1;
253    fi
254    
255    
256    ###########################################################################
257    # Handle Configuration Options
258    
259    # TODO: should we use AC_ARG_VAR(variable, description) instead?
260    
261    AC_ARG_ENABLE(asm,
262      [  --disable-asm
263                              Disable hand-crafted assembly optimizations
264                              (default=on). LinuxSampler provides CPU specific
265                              assembly optimizations for the most important
266                              synthesis algorithms. You usually don't want to
267                              disable that.],
268      [config_asm="no"],
269      [config_asm="yes"]
270    )
271    if test "$config_asm" = "yes"; then
272      AC_DEFINE_UNQUOTED(CONFIG_ASM, 1, [Define to 1 if you want to enable hand-crafted asm optimizations.])
273    fi
274    
275    AC_ARG_ENABLE(dev-mode,
276      [  --enable-dev-mode
277                              Enable development mode (default=no). In that mode
278                              we do some extra sanity checks here and there.
279                              This helps to spot possible problems, but reduces
280                              efficiency a bit],
281      [config_dev_mode="yes"],
282      [config_dev_mode="no"]
283    )
284    if test "$config_dev_mode" = "yes"; then
285      AC_DEFINE_UNQUOTED(CONFIG_DEVMODE, 1, [Define to 1 if you want to enable development mode.])
286    fi
287    
288    AC_ARG_ENABLE(debug-level,
289      [  --enable-debug-level
290                              Specify verbosity of console messages (default=1).
291                              The higher the value, the higher will be verbosity.
292                              A value of 0 means no console output at all.
293                              There's not really an upper limit but the usual
294                              level of all messages is currently somewhere less
295                              than 10.],
296      [config_debug_level="${enableval}"],
297      [config_debug_level="1"]
298    )
299    AC_DEFINE_UNQUOTED(CONFIG_DEBUG_LEVEL, $config_debug_level, [Define console verbosity.])
300    
301    AC_ARG_ENABLE(rt-exceptions,
302      [  --enable-rt-exceptions
303                              Enable exceptions in the realtime thread
304                              (default=no). If this is enabled, exceptions will
305                              be thrown on critical errors in the realtime
306                              context as well. Otherwise if disabled
307                              segmentation faults will be forced by the
308                              application on critical errors.],
309      [config_rt_exceptions="yes"],
310      [config_rt_exceptions="no"]
311    )
312    if test "$config_rt_exceptions" = "yes"; then
313      AC_DEFINE_UNQUOTED(CONFIG_RT_EXCEPTIONS, 1, [Define to 1 to allow exceptions in the realtime context.])
314    fi
315    
316    AC_ARG_ENABLE(preload-samples,
317      [  --enable-preload-samples
318                              Due to seeking and latency issues with hard drives
319                              we have to cache a small part of samples' head in
320                              RAM (default=32768). The higher this value the
321                              more memory will be occupied for each sample, but
322                              the safer this will be in regards of possible
323                              droputs. A 'good' value depends on the running
324                              system and usage dependant factors.],
325      [config_preload_samples="${enableval}"],
326      [config_preload_samples="32768"]
327    )
328    AC_DEFINE_UNQUOTED(CONFIG_PRELOAD_SAMPLES, $config_preload_samples, [Define amount of sample points to be cached in RAM.])
329    
330    AC_ARG_ENABLE(max-pitch,
331      [  --enable-max-pitch
332                              Specify the maximum allowed pitch value in octaves
333                              (default=4). To lower memory usage you might want
334                              set a smaller value.],
335      [config_max_pitch="${enableval}"],
336      [config_max_pitch="4"]
337    )
338    AC_DEFINE_UNQUOTED(CONFIG_MAX_PITCH, $config_max_pitch, [Define max. allowed pitch.])
339    
340    AC_ARG_ENABLE(max-events,
341      [  --enable-max-events
342                              Specify the maximum allowed amount of events to be
343                              processed per fragment (default=1024).],
344      [config_max_events="${enableval}"],
345      [config_max_events="1024"]
346    )
347    AC_DEFINE_UNQUOTED(CONFIG_MAX_EVENTS_PER_FRAGMENT, $config_max_events, [Define max. allowed events per fragment.])
348    
349    AC_ARG_ENABLE(eg-bottom,
350      [  --enable-eg-bottom
351                              Bottom limit of envelope generators
352                              (default=0.001). Certain kinds of curve types like
353                              exponential curves converge against 0 but never
354                              reach 0. So we have to define a certain low value
355                              after which we should consider all smaller values
356                              to be 'almost zero'. The smaller this value, the
357                              longer will voices survive in EG's release stage
358                              and thus waste voices. If this value is too high
359                              will cause click sounds though.],
360      [config_eg_bottom="${enableval}"],
361      [config_eg_bottom="0.001"]
362    )
363    AC_DEFINE_UNQUOTED(CONFIG_EG_BOTTOM, $config_eg_bottom, [Define bottom limit of envelopes.])
364    
365    AC_ARG_ENABLE(eg-min-release-time,
366      [  --enable-eg-min-release-time
367                              Specify the lowest allowed release time in seconds
368                              (default=0.0025). This value will also be used to
369                              ramp down voices on voice stealing. This value
370                              should always be less than the period time of the
371                              used audio driver, as in case of voice stealing
372                              the killed voice needs to be completely ramped
373                              down in the same fragment.],
374      [config_eg_min_release_time="${enableval}"],
375      [config_eg_min_release_time="0.0025"]
376    )
377    AC_DEFINE_UNQUOTED(CONFIG_EG_MIN_RELEASE_TIME, $config_eg_min_release_time, [Define min. release time.])
378    
379    AC_ARG_ENABLE(refill-streams,
380      [  --enable-refill-streams
381                              Number of streams that should be refilled in each
382                              disk thread cycle (default=4).],
383      [config_refill_streams="${enableval}"],
384      [config_refill_streams="4"]
385    )
386    AC_DEFINE_UNQUOTED(CONFIG_REFILL_STREAMS_PER_RUN, $config_refill_streams, [Define amount of streams to be refilled per cycle.])
387    
388    AC_ARG_ENABLE(stream-min-refill,
389      [  --enable-stream-min-refill
390                              Minimum refill size for disk streams (default=1024).
391                              The disk thread will go to sleep for a while if no
392                              stream had to be refilled more than this value in
393                              a disk thread cycle.],
394      [config_stream_min_refill="${enableval}"],
395      [config_stream_min_refill="1024"]
396    )
397    AC_DEFINE_UNQUOTED(CONFIG_STREAM_MIN_REFILL_SIZE, $config_stream_min_refill, [Define min. stream refill size.])
398    
399    AC_ARG_ENABLE(stream-max-refill,
400      [  --enable-stream-max-refill
401                              Maximum refill size for disk streams
402                              (default=65536). The disk thread will refill
403                              each stream only by a size of this value per
404                              disk thread cycle.],
405      [config_stream_max_refill="${enableval}"],
406      [config_stream_max_refill="65536"]
407    )
408    AC_DEFINE_UNQUOTED(CONFIG_STREAM_MAX_REFILL_SIZE, $config_stream_max_refill, [Define max. stream refill size.])
409    
410    AC_ARG_ENABLE(stream-size,
411      [  --enable-stream-size
412                              Size of each stream's ring buffer in sample points
413                              (default=262144).],
414      [config_stream_size="${enableval}"],
415      [config_stream_size="262144"]
416    )
417    AC_DEFINE_UNQUOTED(CONFIG_STREAM_BUFFER_SIZE, $config_stream_size, [Define each stream's ring buffer size.])
418    
419    AC_ARG_ENABLE(max-streams,
420      [  --enable-max-streams
421                              Maximum amount of disk streams (default=90). This
422                              value should always be higher than the maximum
423                              amount of voices.],
424      [config_max_streams="${enableval}"],
425      [config_max_streams="90"]
426    )
427    AC_DEFINE_UNQUOTED(CONFIG_MAX_STREAMS, $config_max_streams, [Define max. streams.])
428    
429    AC_ARG_ENABLE(max-voices,
430      [  --enable-max-voices
431                              Maximum amount of voices (default=64). This value
432                              should always be lower than the maximum amount of
433                              disk streams.],
434      [config_max_voices="${enableval}"],
435      [config_max_voices="64"]
436    )
437    AC_DEFINE_UNQUOTED(CONFIG_MAX_VOICES, $config_max_voices, [Define max. voices.])
438    
439    AC_ARG_ENABLE(voice-steal-algo,
440      [  --enable-voice-steal-algo
441                              Voice stealing algorithm to be used. Currently
442                              available options:
443                                none:
444                                  Disable voice stealing completely.
445                                oldestvoiceonkey (default):
446                                  Try to kill a voice on the same key first,
447                                  if no success, proceed with the oldest key.
448                                oldestkey:
449                                  Try to kill a voice from the oldest active
450                                  key.],
451      [ if test ! "(" "${enableval}" = "none" \
452                  -o "${enableval}" = "oldestvoiceonkey" \
453                  -o "${enableval}" = "oldestkey" ")" ; then
454          AC_MSG_ERROR([Unknown voice stealing algorithm for parameter --enable-voice-steal-algo])
455        else
456          config_voice_steal_algo="${enableval}"
457        fi
458      ],
459      [config_voice_steal_algo="oldestvoiceonkey"]
460    )
461    AC_DEFINE_UNQUOTED(CONFIG_VOICE_STEAL_ALGO, voice_steal_algo_${config_voice_steal_algo}, [Define voice stealing algorithm to be used.])
462    
463    AC_ARG_ENABLE(sysex-buffer-size,
464      [  --enable-sysex-buffer-size
465                              System Exclusive Message buffer size in kB
466                              (default=2048).],
467      [config_sysex_buffer_size="${enableval}"],
468      [config_sysex_buffer_size="2048"]
469    )
470    AC_DEFINE_UNQUOTED(CONFIG_SYSEX_BUFFER_SIZE, $config_sysex_buffer_size, [Define SysEx buffer size.])
471    
472    AC_ARG_ENABLE(filter-update-steps,
473      [  --enable-filter-update-steps
474                              Amount of sample points after which filter
475                              parameters (cutoff, resonance) are going to be
476                              updated (default=64). Higher value means less CPU
477                              load, but also worse parameter resolution, this
478                              value will be aligned to a power of two.],
479      [config_filter_update_steps="${enableval}"],
480      [config_filter_update_steps="64"]
481    )
482    AC_DEFINE_UNQUOTED(CONFIG_FILTER_UPDATE_STEPS, $config_filter_update_steps, [Define amount of steps to refresh filter coefficients.])
483    
484    AC_ARG_ENABLE(force-filter,
485      [  --enable-force-filter
486                              If enabled will force filter to be used even if
487                              no usage was define in instrument patch files.
488                              (default=no).],
489      [config_force_filter="yes"],
490      [config_force_filter="no"]
491    )
492    if test "$config_force_filter" = "yes"; then
493      AC_DEFINE_UNQUOTED(CONFIG_FORCE_FILTER, 1, [Define to 1 to force filter usage.])
494    fi
495    
496    AC_ARG_ENABLE(filter-cutoff-min,
497      [  --enable-filter-cutoff-min
498                              Minimum filter cutoff frequency in Hz
499                              (default=100.0).],
500      [config_filter_cutoff_min="${enableval}"],
501      [config_filter_cutoff_min="100.0"]
502    )
503    AC_DEFINE_UNQUOTED(CONFIG_FILTER_CUTOFF_MIN, ${config_filter_cutoff_min}f, [Define min. filter cutoff frequency.])
504    
505    AC_ARG_ENABLE(filter-cutoff-max,
506      [  --enable-filter-cutoff-max
507                              Maximum filter cutoff frequency in Hz
508                              (default=10000.0).],
509      [config_filter_cutoff_max="${enableval}"],
510      [config_filter_cutoff_max="10000.0"]
511    )
512    AC_DEFINE_UNQUOTED(CONFIG_FILTER_CUTOFF_MAX, ${config_filter_cutoff_max}f, [Define max. filter cutoff frequency.])
513    
514    AC_ARG_ENABLE(override-cutoff-ctrl,
515      [  --enable-override-cutoff-ctrl
516                              Override filter cutoff MIDI controller (default=no).
517                              Note: you have to define the MIDI controller number
518                              here, it's not a boolean parameter type! If this
519                              option is used, controller number given by
520                              instrument patch will be ignored and instead this
521                              supplied value will be used.],
522      [config_override_cutoff_ctrl="${enableval}"],
523      [config_override_cutoff_ctrl="no"]
524    )
525    if test ! "$config_override_cutoff_ctrl" = "no"; then
526      AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_CUTOFF_CTRL, $config_override_cutoff_ctrl, [Define to a MIDI controller number to override cutoff control.])
527    fi
528    
529    AC_ARG_ENABLE(override-resonance-ctrl,
530      [  --enable-override-resonance-ctrl
531                              Override filter resonance MIDI controller
532                              (default=no). Note: you have to define the MIDI
533                              controller number here, it's not a boolean
534                              parameter type! If this option is used, controller
535                              number given by instrument patch will be ignored
536                              and instead this supplied value will be used.],
537      [config_override_resonance_ctrl="${enableval}"],
538      [config_override_resonance_ctrl="no"]
539    )
540    if test ! "$config_override_resonance_ctrl" = "no"; then
541      AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_RESONANCE_CTRL, $config_override_resonance_ctrl, [Define to a MIDI controller number to override resonance control.])
542    fi
543    
544    AC_ARG_ENABLE(override-filter-type,
545      [  --enable-override-filter-type
546                              Override filter type (default=no). Options:
547                              hp: for highpass
548                              bp: for bandpass
549                              br: for bandreject
550                              lp: for lowpass
551                              lpt: for lowpass turbo],
552      [ if   test "${enableval}" = "hp" ; then
553           config_override_filter_type="::gig::vcf_type_highpass"
554        elif test "${enableval}" = "bp" ; then
555           config_override_filter_type="::gig::vcf_type_bandpass"
556        elif test "${enableval}" = "br" ; then
557           config_override_filter_type="::gig::vcf_type_bandreject"
558        elif test "${enableval}" = "lp" ; then
559           config_override_filter_type="::gig::vcf_type_lowpass"
560        elif test "${enableval}" = "lpt" ; then
561           config_override_filter_type="::gig::vcf_type_lowpassturbo"
562        elif test ! "${enableval}" = "no"; then
563           AC_MSG_ERROR([Unknown filter type for parameter --enable-override-filter-type])
564        fi
565      ],
566      [config_override_filter_type="no"]
567    )
568    if test ! "$config_override_filter_type" = "no"; then
569      AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_FILTER_TYPE, $config_override_filter_type, [Define to a filter type to always force that filter type.])
570    fi
571    
572    AC_ARG_ENABLE(gs-checksum,
573      [  --enable-gs-checksum
574                              Enable Roland General Synth SysEx checksum check
575                              (default=no). If this is enabled, all GS SysEx
576                              messages which do not provide a correct checksum
577                              will be ignored. This is disabled by default as
578                              not all devices honor GS checksums.],
579      [config_assert_gs_sysex_checksum="yes"],
580      [config_assert_gs_sysex_checksum="no"]
581    )
582    if test "config_assert_gs_sysex_checksum" = "yes"; then
583      AC_DEFINE_UNQUOTED(CONFIG_ASSERT_GS_SYSEX_CHECKSUM, 1, [Define to 1 if you want to enable GS SysEx check.])
584    fi
585    
586    AC_ARG_ENABLE(signed-triang-algo,
587      [  --enable-signed-triang-algo
588                              Signed triangular wave algorithm to be used (e.g. for LFOs).
589                              Currently available options:
590                                intmath:
591                                  Uses integer math without any branch will then be
592                                  converted to floating point value for each sample point.
593                                  This int->float conversion might hurt on some systems.
594                                diharmonic:
595                                  The triangular wave will be approximated by adding two
596                                  sinusoidials. This solution might especially hurt on
597                                  systems with weak floating point unit.
598                                benchmark (default):
599                                  This is not an algorithm. Use this option if the
600                                  appropriate algorithm should be automatically
601                                  chosen by the configure script by performing a
602                                  benchmark between the algorithms mentioned above.
603                                  This will NOT work for cross compilation!],
604      [ if test ! "(" "${enableval}" = "intmath" \
605                  -o "${enableval}" = "diharmonic" ")" ; then
606          AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-signed-triang-algo])
607        else
608          config_signed_triang_algo="${enableval}"
609        fi
610      ],
611      [config_signed_triang_algo="benchmark"]
612    )
613    
614    AC_ARG_ENABLE(unsigned-triang-algo,
615      [  --enable-unsigned-triang-algo
616                              Unsigned triangular wave algorithm to be used (e.g. for LFOs).
617                              Currently available options:
618                                intmath:
619                                  Uses integer math without any branch will then be
620                                  converted to floating point value for each sample point.
621                                  This int->float conversion might hurt on some systems.
622                                diharmonic:
623                                  The triangular wave will be approximated by adding two
624                                  sinusoidials. This solution might especially hurt on
625                                  systems with weak floating point unit.
626                                benchmark (default):
627                                  This is not an algorithm. Use this option if the
628                                  appropriate algorithm should be automatically
629                                  chosen by the configure script by performing a
630                                  benchmark between the algorithms mentioned above.
631                                  This will NOT work for cross compilation!],
632      [ if test ! "(" "${enableval}" = "intmath" \
633                  -o "${enableval}" = "diharmonic" ")" ; then
634          AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-unsigned-triang-algo])
635        else
636          config_unsigned_triang_algo="${enableval}"
637        fi
638      ],
639      [config_unsigned_triang_algo="benchmark"]
640    )
641    
642    
643    ###########################################################################
644    # Automatic Benchmarks (to detect the best algorithms for the system)
645    
646    AC_LANG_SAVE
647    
648    if test "$config_signed_triang_algo" = "benchmark"; then
649        echo -n "benchmarking for the best (signed) triangular oscillator algorithm... "
650        AC_LANG_CPLUSPLUS
651        AC_TRY_RUN([
652                #define SIGNED 1
653                #define SILENT 1
654                #include "benchmarks/triang.cpp"
655            ],
656            triang_signed=0,
657            triang_signed=$?,
658            triang_signed=0
659        )
660        if test "$triang_signed" = "2"; then
661            config_signed_triang_algo="intmath"
662            echo "integer math"
663        elif test "$triang_signed" = "3"; then
664            config_signed_triang_algo="diharmonic"
665            echo "di harmonics"
666        else
667            echo "Benchmark of signed triangular wave algorithms failed!"
668            echo "Maybe you are doing cross compilation? In that case you have to select"
669            echo "an algorithm manually with './configure --enable-signed-triang-algo=...'"
670            echo "Call './configure --help' for further information or read configure.in."
671            exit -1;
672        fi
673    fi
674    AC_DEFINE_UNQUOTED(CONFIG_SIGNED_TRIANG_ALGO, signed_triang_algo_${config_signed_triang_algo}, [Define signed triangular wave algorithm to be used.])
675    
676    if test "$config_unsigned_triang_algo" = "benchmark"; then
677        echo -n "benchmarking for the best (unsigned) triangular oscillator algorithm... "
678        AC_LANG_CPLUSPLUS
679        AC_TRY_RUN([
680                #define SIGNED 0
681                #define SILENT 1
682                #include "benchmarks/triang.cpp"
683            ],
684            triang_unsigned=0,
685            triang_unsigned=$?,
686            triang_unsigned=0
687        )
688        if test "$triang_unsigned" = "2"; then
689            config_unsigned_triang_algo="intmath"
690            echo "integer math"
691        elif test "$triang_unsigned" = "3"; then
692            config_unsigned_triang_algo="diharmonic"
693            echo "di harmonics"
694        else
695            echo "Benchmark of unsigned triangular wave algorithms failed!"
696            echo "Maybe you are doing cross compilation? In that case you have to select"
697            echo "an algorithm manually with './configure --enable-unsigned-triang-algo=...'"
698            echo "Call './configure --help' for further information or read configure.in."
699            exit -1;
700        fi
701    fi
702    AC_DEFINE_UNQUOTED(CONFIG_UNSIGNED_TRIANG_ALGO, unsigned_triang_algo_${config_unsigned_triang_algo}, [Define unsigned triangular wave algorithm to be used.])
703    
704    AC_LANG_RESTORE
705    
706    
707    ###########################################################################
708    # Create Build Files
709    
710  AM_CONFIG_HEADER(config.h)  AM_CONFIG_HEADER(config.h)
711  AM_INIT_AUTOMAKE(linuxsampler, 0.2)  AM_INIT_AUTOMAKE(linuxsampler, "$LINUXSAMPLER_RELEASE_MAJOR.$LINUXSAMPLER_RELEASE_MINOR.$LINUXSAMPLER_RELEASE_BUILD")
712    
713  AC_LANG_CPLUSPLUS  AC_LANG_CPLUSPLUS
714  AC_PROG_CXX  AC_PROG_CXX
 AM_PROG_LIBTOOL  
715    
716  AC_OUTPUT(Makefile src/Makefile src/network/Makefile src/engines/Makefile src/engines/gig/Makefile src/engines/common/Makefile src/common/Makefile src/audiodriver/Makefile src/mididriver/Makefile src/lib/Makefile src/lib/fileloader/Makefile src/lib/fileloader/libgig/Makefile src/testcases/Makefile src/drivers/Makefile)  # some gcc 4.0 versions need -msse for SSE register allocations
717    if test "$config_asm" = "yes"; then
718      if test "$def_arch_x86" = 1; then
719        CXXFLAGS="$CXXFLAGS -msse"
720      fi
721    fi
722    
723    # autoconf 2.59/libtool 1.5.12 bug? work-around. Without a check like
724    # this, the dlfcn.h check in am_prog_libtool may fail.
725    AC_CHECK_HEADER(stdlib.h)
726    
727    AC_OUTPUT( \
728        Makefile \
729        man/Makefile \
730        man/linuxsampler.1 \
731        src/Makefile \
732        src/network/Makefile \
733        src/engines/Makefile \
734        src/engines/gig/Makefile \
735        src/engines/common/Makefile \
736        src/common/Makefile src/lib/Makefile \
737        src/lib/fileloader/Makefile \
738        src/lib/fileloader/libgig/Makefile \
739        src/testcases/Makefile \
740        src/drivers/Makefile \
741        src/drivers/audio/Makefile \
742        src/drivers/midi/Makefile \
743        linuxsampler.spec \
744        debian/Makefile \
745        Artwork/Makefile \
746        scripts/Makefile \
747        osx/Makefile \
748        osx/LinuxSampler.xcode/Makefile \
749        Documentation/Makefile \
750        Documentation/Engines/Makefile \
751        Documentation/Engines/gig/Makefile \
752        linuxsampler.pc \
753        Doxyfile \
754    )
755    
756    
757    ###########################################################################
758    # Output All Configuration Options
759    
760    echo ""
761    echo "#####################################################################"
762    echo "# LinuxSampler Configuration                                        #"
763    echo "#-------------------------------------------------------------------#"
764    echo "# Assembly Optimizations: ${config_asm}"
765    echo "# Development Mode: ${config_dev_mode}"
766    echo "# Debug Level: ${config_debug_level}"
767    echo "# Use Exceptions in RT Context: ${config_rt_exceptions}"
768    echo "# Preload Samples: ${config_preload_samples}"
769    echo "# Maximum Pitch: ${config_max_pitch} (octaves)"
770    echo "# Maximum Events: ${config_max_events}"
771    echo "# Envelope Bottom Level: ${config_eg_bottom} (linear)"
772    echo "# Envelope Minimum Release Time: ${config_eg_min_release_time} s"
773    echo "# Streams to be refilled per Disk Thread Cycle: ${config_refill_streams}"
774    echo "# Minimum Stream Refill Size: ${config_stream_min_refill}"
775    echo "# Maximum Stream Refill Size: ${config_stream_max_refill}"
776    echo "# Stream Size: ${config_stream_size}"
777    echo "# Maximum Disk Streams: ${config_max_streams}"
778    echo "# Maximum Voices: ${config_max_voices}"
779    echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}"
780    echo "# Signed Triangular Oscillator Algorithm: ${config_signed_triang_algo}"
781    echo "# Unsigned Triangular Oscillator Algorithm: ${config_unsigned_triang_algo}"
782    echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte"
783    echo "# Filter Update Steps: ${config_filter_update_steps}"
784    echo "# Force Filter Usage: ${config_force_filter}"
785    echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz"
786    echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz"
787    echo "# Override Filter Cutoff Controller: ${config_override_cutoff_ctrl}"
788    echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"
789    echo "# Override Filter Type: ${config_override_filter_type}"
790    echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}"
791    echo "#-------------------------------------------------------------------#"
792    echo "# Read './configure --help' or file 'configure.in' for details.     #"
793    echo "#####################################################################"
794    echo ""
795    echo "Good. Now type 'make' to compile, followed by 'make install' as root."
796    echo ""

Legend:
Removed from v.133  
changed lines
  Added in v.714

  ViewVC Help
Powered by ViewVC