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

Diff of /linuxsampler/trunk/configure.in

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

revision 536 by schoenebeck, Tue May 10 22:00:49 2005 UTC revision 716 by iliev, Sun Jul 24 06:57:30 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 9  AC_SUBST(target_os) Line 44  AC_SUBST(target_os)
44  AC_SUBST(target_vendor)  AC_SUBST(target_vendor)
45    
46    
47    ###########################################################################
48    # General Checks
49    
50  AC_MSG_CHECKING([whether x86 architecture])  AC_MSG_CHECKING([whether x86 architecture])
51  def_arch_x86=0  def_arch_x86=0
# Line 21  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  # determine the right gcc switch for CPU specific optimizations
62  CXX_CPU_SWITCH=  CXX_CPU_SWITCH=
63  if test "$def_arch_x86" = 1; then  if test "$def_arch_x86" = 1; then
# Line 31  elif test "$target_cpu" = "powerpc"; the Line 67  elif test "$target_cpu" = "powerpc"; the
67  fi  fi
68  AC_SUBST([CXX_CPU_SWITCH])  AC_SUBST([CXX_CPU_SWITCH])
69    
   
70  AC_MSG_CHECKING([whether UNIX98 compatible])  AC_MSG_CHECKING([whether UNIX98 compatible])
71  AC_LANG_SAVE  AC_LANG_SAVE
72  AC_LANG_C  AC_LANG_C
# Line 64  if test "$have_unix98" = "no"; then Line 99  if test "$have_unix98" = "no"; then
99      fi      fi
100  fi  fi
101    
   
102  # Checks for available audio and MIDI systems / drivers  # 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)  # (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"  have_midi_input_driver="false"
# Line 86  fi Line 120  fi
120  AM_CONDITIONAL(HAVE_ALSA, test $have_alsa = "1")  AM_CONDITIONAL(HAVE_ALSA, test $have_alsa = "1")
121  AC_DEFINE_UNQUOTED(HAVE_ALSA,$have_alsa,[Define to 1 if you have ALSA installed.])  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
125  AC_LANG_C  AC_LANG_C
# Line 138  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 153  fi Line 185  fi
185  AM_CONDITIONAL(HAVE_JACK, test $HAVE_JACK = 1)  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  # Check presence of libgig
215  libgig_version="2.0.0"  libgig_version="2.0.1"
216  PKG_CHECK_MODULES(GIG, gig >= $libgig_version, HAVE_GIG=true, HAVE_GIG=false)  PKG_CHECK_MODULES(GIG, gig >= $libgig_version, HAVE_GIG=true, HAVE_GIG=false)
217  if test "$HAVE_GIG" = "false"; then  if test "$HAVE_GIG" = "false"; then
218      echo "Required libgig version not found!"      echo "Required libgig version not found!"
219      echo "You need to have libgig version ${libgig_version} installed!"      echo "You need to have libgig version ${libgig_version} installed!"
220      exit -1;      exit -1;
221    else
222        echo "yes, found libgig $libgig_version"
223  fi  fi
224  AC_SUBST(GIG_CFLAGS)  AC_SUBST(GIG_CFLAGS)
225  AC_SUBST(GIG_LIBS)  AC_SUBST(GIG_LIBS)
226    
   
227  # SQLITE3  # SQLITE3
228  PKG_CHECK_MODULES(SQLITE3, sqlite3, HAVE_SQLITE3=true, HAVE_SQLITE3=false)  PKG_CHECK_MODULES(SQLITE3, sqlite3, HAVE_SQLITE3=true, HAVE_SQLITE3=false)
229  AC_SUBST(SQLITE3_LIBS)  AC_SUBST(SQLITE3_LIBS)
230  AC_SUBST(SQLITE3_CFLAGS)  AC_SUBST(SQLITE3_CFLAGS)
231  if test $HAVE_SQLITE3 = false; then  if test $HAVE_SQLITE3 = false; then
232      HAVE_SQLITE3=0;      HAVE_SQLITE3=0;
233        echo "no, support for instrument DB will be disabled!"
234  else  else
235      HAVE_SQLITE3=1      HAVE_SQLITE3=1
236        echo "yes"
237  fi  fi
238  AM_CONDITIONAL(HAVE_SQLITE3, test $HAVE_SQLITE3 = 1)  AM_CONDITIONAL(HAVE_SQLITE3, test $HAVE_SQLITE3 = 1)
239  AC_DEFINE_UNQUOTED(HAVE_SQLITE3,$HAVE_SQLITE3,[Define to 1 if you have SQLITE3 installed.])  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  if test "$have_midi_input_driver" = "false"; then
242      echo "No supported MIDI input system found!"      echo "No supported MIDI input system found!"
243      echo "Sorry, LinuxSampler only supports ALSA as MIDI input driver at the moment!"      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;      exit -1;
248  fi  fi
249  if test "$have_audio_output_driver" = "false"; then  if test "$have_audio_output_driver" = "false"; then
# Line 191  if test "$have_audio_output_driver" = "f Line 253  if test "$have_audio_output_driver" = "f
253  fi  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    AC_ARG_ENABLE(process-muted-channels,
643      [  --enable-process-muted-channels
644                              Enable processing of muted channels (default=no).
645                              In that mode all MIDI events in the muted channels
646                              will be processed. This will provide information
647                              about the active voices in the muted channels and
648                              will not discard notes, triggered in mute mode,
649                              when the channel is unmuted. But also will reduce
650                              the efficiency.],
651      [config_process_muted_channels="yes"],
652      [config_process_muted_channels="no"]
653    )
654    if test "$config_process_muted_channels" = "yes"; then
655      AC_DEFINE_UNQUOTED(CONFIG_PROCESS_MUTED_CHANNELS, 1, [Define to 1 if you want to enable processing of muted channels.])
656    fi
657    
658    
659    ###########################################################################
660    # Automatic Benchmarks (to detect the best algorithms for the system)
661    
662    AC_LANG_SAVE
663    
664    if test "$config_signed_triang_algo" = "benchmark"; then
665        echo -n "benchmarking for the best (signed) triangular oscillator algorithm... "
666        AC_LANG_CPLUSPLUS
667        AC_TRY_RUN([
668                #define SIGNED 1
669                #define SILENT 1
670                #include "benchmarks/triang.cpp"
671            ],
672            triang_signed=0,
673            triang_signed=$?,
674            triang_signed=0
675        )
676        if test "$triang_signed" = "2"; then
677            config_signed_triang_algo="intmath"
678            echo "integer math"
679        elif test "$triang_signed" = "3"; then
680            config_signed_triang_algo="diharmonic"
681            echo "di harmonics"
682        else
683            echo "Benchmark of signed triangular wave algorithms failed!"
684            echo "Maybe you are doing cross compilation? In that case you have to select"
685            echo "an algorithm manually with './configure --enable-signed-triang-algo=...'"
686            echo "Call './configure --help' for further information or read configure.in."
687            exit -1;
688        fi
689    fi
690    AC_DEFINE_UNQUOTED(CONFIG_SIGNED_TRIANG_ALGO, signed_triang_algo_${config_signed_triang_algo}, [Define signed triangular wave algorithm to be used.])
691    
692    if test "$config_unsigned_triang_algo" = "benchmark"; then
693        echo -n "benchmarking for the best (unsigned) triangular oscillator algorithm... "
694        AC_LANG_CPLUSPLUS
695        AC_TRY_RUN([
696                #define SIGNED 0
697                #define SILENT 1
698                #include "benchmarks/triang.cpp"
699            ],
700            triang_unsigned=0,
701            triang_unsigned=$?,
702            triang_unsigned=0
703        )
704        if test "$triang_unsigned" = "2"; then
705            config_unsigned_triang_algo="intmath"
706            echo "integer math"
707        elif test "$triang_unsigned" = "3"; then
708            config_unsigned_triang_algo="diharmonic"
709            echo "di harmonics"
710        else
711            echo "Benchmark of unsigned triangular wave algorithms failed!"
712            echo "Maybe you are doing cross compilation? In that case you have to select"
713            echo "an algorithm manually with './configure --enable-unsigned-triang-algo=...'"
714            echo "Call './configure --help' for further information or read configure.in."
715            exit -1;
716        fi
717    fi
718    AC_DEFINE_UNQUOTED(CONFIG_UNSIGNED_TRIANG_ALGO, unsigned_triang_algo_${config_unsigned_triang_algo}, [Define unsigned triangular wave algorithm to be used.])
719    
720    AC_LANG_RESTORE
721    
722    
723    ###########################################################################
724    # Create Build Files
725    
726  AM_CONFIG_HEADER(config.h)  AM_CONFIG_HEADER(config.h)
727  AM_INIT_AUTOMAKE(linuxsampler, 0.3.1)  AM_INIT_AUTOMAKE(linuxsampler, "$LINUXSAMPLER_RELEASE_MAJOR.$LINUXSAMPLER_RELEASE_MINOR.$LINUXSAMPLER_RELEASE_BUILD")
728    
729  AC_LANG_CPLUSPLUS  AC_LANG_CPLUSPLUS
730  AC_PROG_CXX  AC_PROG_CXX
731    
732    # some gcc 4.0 versions need -msse for SSE register allocations
733    if test "$config_asm" = "yes"; then
734      if test "$def_arch_x86" = 1; then
735        CXXFLAGS="$CXXFLAGS -msse"
736      fi
737    fi
738    
739  # autoconf 2.59/libtool 1.5.12 bug? work-around. Without a check like  # autoconf 2.59/libtool 1.5.12 bug? work-around. Without a check like
740  # this, the dlfcn.h check in am_prog_libtool may fail.  # this, the dlfcn.h check in am_prog_libtool may fail.
741  AC_CHECK_HEADER(stdlib.h)  AC_CHECK_HEADER(stdlib.h)
742    
743  AM_PROG_LIBTOOL  AC_OUTPUT( \
744        Makefile \
745        man/Makefile \
746        man/linuxsampler.1 \
747        src/Makefile \
748        src/network/Makefile \
749        src/engines/Makefile \
750        src/engines/gig/Makefile \
751        src/engines/common/Makefile \
752        src/common/Makefile src/lib/Makefile \
753        src/lib/fileloader/Makefile \
754        src/lib/fileloader/libgig/Makefile \
755        src/testcases/Makefile \
756        src/drivers/Makefile \
757        src/drivers/audio/Makefile \
758        src/drivers/midi/Makefile \
759        linuxsampler.spec \
760        debian/Makefile \
761        Artwork/Makefile \
762        scripts/Makefile \
763        osx/Makefile \
764        osx/LinuxSampler.xcode/Makefile \
765        Documentation/Makefile \
766        Documentation/Engines/Makefile \
767        Documentation/Engines/gig/Makefile \
768        linuxsampler.pc \
769        Doxyfile \
770    )
771    
772    
773    ###########################################################################
774    # Output All Configuration Options
775    
776  AC_OUTPUT(Makefile src/Makefile src/network/Makefile src/engines/Makefile src/engines/gig/Makefile src/engines/common/Makefile src/common/Makefile src/lib/Makefile src/lib/fileloader/Makefile src/lib/fileloader/libgig/Makefile src/testcases/Makefile src/drivers/Makefile src/drivers/audio/Makefile src/drivers/midi/Makefile)  echo ""
777    echo "#####################################################################"
778    echo "# LinuxSampler Configuration                                        #"
779    echo "#-------------------------------------------------------------------#"
780    echo "# Assembly Optimizations: ${config_asm}"
781    echo "# Development Mode: ${config_dev_mode}"
782    echo "# Debug Level: ${config_debug_level}"
783    echo "# Use Exceptions in RT Context: ${config_rt_exceptions}"
784    echo "# Preload Samples: ${config_preload_samples}"
785    echo "# Maximum Pitch: ${config_max_pitch} (octaves)"
786    echo "# Maximum Events: ${config_max_events}"
787    echo "# Envelope Bottom Level: ${config_eg_bottom} (linear)"
788    echo "# Envelope Minimum Release Time: ${config_eg_min_release_time} s"
789    echo "# Streams to be refilled per Disk Thread Cycle: ${config_refill_streams}"
790    echo "# Minimum Stream Refill Size: ${config_stream_min_refill}"
791    echo "# Maximum Stream Refill Size: ${config_stream_max_refill}"
792    echo "# Stream Size: ${config_stream_size}"
793    echo "# Maximum Disk Streams: ${config_max_streams}"
794    echo "# Maximum Voices: ${config_max_voices}"
795    echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}"
796    echo "# Signed Triangular Oscillator Algorithm: ${config_signed_triang_algo}"
797    echo "# Unsigned Triangular Oscillator Algorithm: ${config_unsigned_triang_algo}"
798    echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte"
799    echo "# Filter Update Steps: ${config_filter_update_steps}"
800    echo "# Force Filter Usage: ${config_force_filter}"
801    echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz"
802    echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz"
803    echo "# Override Filter Cutoff Controller: ${config_override_cutoff_ctrl}"
804    echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"
805    echo "# Override Filter Type: ${config_override_filter_type}"
806    echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}"
807    echo "# Process Muted Channels: ${config_process_muted_channels}"
808    echo "#-------------------------------------------------------------------#"
809    echo "# Read './configure --help' or file 'configure.in' for details.     #"
810    echo "#####################################################################"
811    echo ""
812    echo "Good. Now type 'make' to compile, followed by 'make install' as root."
813    echo ""

Legend:
Removed from v.536  
changed lines
  Added in v.716

  ViewVC Help
Powered by ViewVC