/[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 133 by capela, Fri Jun 18 14:29:02 2004 UTC revision 781 by schoenebeck, Mon Sep 26 10:17:00 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.2"
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      [  --enable-asm
263                              Enable hand-crafted assembly optimizations
264                              (default=off). LinuxSampler provides CPU specific
265                              assembly optimizations for the most important
266                              synthesis algorithms. This is currently disabled
267                              by default since current asm code is broken.],
268      [config_asm="yes"],
269      [config_asm="no"]
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      [  --disable-dev-mode
277                              Disable development mode (default=on). 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="no"],
282      [config_dev_mode="yes"]
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(subfragment-size,
440      [  --enable-subfragment-size
441                              Every audio fragment will be splitted into
442                              subfragments. Where each subfragment renders
443                              audio with constant synthesis parameters. This is
444                              done for efficiency reasons. This parameter
445                              defines the default size of a subfragment in
446                              sample points. A large value means less CPU time
447                              whereas a low value means better audio quality
448                              (default=32).],
449      [config_subfragment_size="${enableval}"],
450      [config_subfragment_size="32"]
451    )
452    AC_DEFINE_UNQUOTED(CONFIG_DEFAULT_SUBFRAGMENT_SIZE, $config_subfragment_size, [Define default subfragment size (in sample points).])
453    
454    AC_ARG_ENABLE(global-attenuation,
455      [  --enable-global-attenuation
456                              To prevent clipping all samples will be lowered
457                              in amplitude by this given factor.
458                              (default=0.35)],
459      [config_global_attenuation="${enableval}"],
460      [config_global_attenuation="0.35"]
461    )
462    AC_DEFINE_UNQUOTED(CONFIG_GLOBAL_ATTENUATION, $config_global_attenuation, [Define global volume attenuation (as floating point factor).])
463    
464    AC_ARG_ENABLE(voice-steal-algo,
465      [  --enable-voice-steal-algo
466                              Voice stealing algorithm to be used. Currently
467                              available options:
468                                none:
469                                  Disable voice stealing completely.
470                                oldestvoiceonkey (default):
471                                  Try to kill a voice on the same key first,
472                                  if no success, proceed with the oldest key.
473                                oldestkey:
474                                  Try to kill a voice from the oldest active
475                                  key.],
476      [ if test ! "(" "${enableval}" = "none" \
477                  -o "${enableval}" = "oldestvoiceonkey" \
478                  -o "${enableval}" = "oldestkey" ")" ; then
479          AC_MSG_ERROR([Unknown voice stealing algorithm for parameter --enable-voice-steal-algo])
480        else
481          config_voice_steal_algo="${enableval}"
482        fi
483      ],
484      [config_voice_steal_algo="oldestvoiceonkey"]
485    )
486    AC_DEFINE_UNQUOTED(CONFIG_VOICE_STEAL_ALGO, voice_steal_algo_${config_voice_steal_algo}, [Define voice stealing algorithm to be used.])
487    
488    AC_ARG_ENABLE(sysex-buffer-size,
489      [  --enable-sysex-buffer-size
490                              System Exclusive Message buffer size in kB
491                              (default=2048).],
492      [config_sysex_buffer_size="${enableval}"],
493      [config_sysex_buffer_size="2048"]
494    )
495    AC_DEFINE_UNQUOTED(CONFIG_SYSEX_BUFFER_SIZE, $config_sysex_buffer_size, [Define SysEx buffer size.])
496    
497    AC_ARG_ENABLE(force-filter,
498      [  --enable-force-filter
499                              If enabled will force filter to be used even if
500                              no usage was define in instrument patch files.
501                              (default=no).],
502      [config_force_filter="yes"],
503      [config_force_filter="no"]
504    )
505    if test "$config_force_filter" = "yes"; then
506      AC_DEFINE_UNQUOTED(CONFIG_FORCE_FILTER, 1, [Define to 1 to force filter usage.])
507    fi
508    
509    AC_ARG_ENABLE(filter-cutoff-min,
510      [  --enable-filter-cutoff-min
511                              Minimum filter cutoff frequency in Hz
512                              (default=100.0).],
513      [config_filter_cutoff_min="${enableval}"],
514      [config_filter_cutoff_min="100.0"]
515    )
516    AC_DEFINE_UNQUOTED(CONFIG_FILTER_CUTOFF_MIN, ${config_filter_cutoff_min}f, [Define min. filter cutoff frequency.])
517    
518    AC_ARG_ENABLE(filter-cutoff-max,
519      [  --enable-filter-cutoff-max
520                              Maximum filter cutoff frequency in Hz
521                              (default=10000.0).],
522      [config_filter_cutoff_max="${enableval}"],
523      [config_filter_cutoff_max="10000.0"]
524    )
525    AC_DEFINE_UNQUOTED(CONFIG_FILTER_CUTOFF_MAX, ${config_filter_cutoff_max}f, [Define max. filter cutoff frequency.])
526    
527    AC_ARG_ENABLE(override-cutoff-ctrl,
528      [  --enable-override-cutoff-ctrl
529                              Override filter cutoff MIDI controller (default=no).
530                              Note: you have to define the MIDI controller number
531                              here, it's not a boolean parameter type! If this
532                              option is used, controller number given by
533                              instrument patch will be ignored and instead this
534                              supplied value will be used.],
535      [config_override_cutoff_ctrl="${enableval}"],
536      [config_override_cutoff_ctrl="no"]
537    )
538    if test ! "$config_override_cutoff_ctrl" = "no"; then
539      AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_CUTOFF_CTRL, $config_override_cutoff_ctrl, [Define to a MIDI controller number to override cutoff control.])
540    fi
541    
542    AC_ARG_ENABLE(override-resonance-ctrl,
543      [  --enable-override-resonance-ctrl
544                              Override filter resonance MIDI controller
545                              (default=no). Note: you have to define the MIDI
546                              controller number here, it's not a boolean
547                              parameter type! If this option is used, controller
548                              number given by instrument patch will be ignored
549                              and instead this supplied value will be used.],
550      [config_override_resonance_ctrl="${enableval}"],
551      [config_override_resonance_ctrl="no"]
552    )
553    if test ! "$config_override_resonance_ctrl" = "no"; then
554      AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_RESONANCE_CTRL, $config_override_resonance_ctrl, [Define to a MIDI controller number to override resonance control.])
555    fi
556    
557    AC_ARG_ENABLE(override-filter-type,
558      [  --enable-override-filter-type
559                              Override filter type (default=no). Options:
560                              hp: for highpass
561                              bp: for bandpass
562                              br: for bandreject
563                              lp: for lowpass
564                              lpt: for lowpass turbo],
565      [ if   test "${enableval}" = "hp" ; then
566           config_override_filter_type="::gig::vcf_type_highpass"
567        elif test "${enableval}" = "bp" ; then
568           config_override_filter_type="::gig::vcf_type_bandpass"
569        elif test "${enableval}" = "br" ; then
570           config_override_filter_type="::gig::vcf_type_bandreject"
571        elif test "${enableval}" = "lp" ; then
572           config_override_filter_type="::gig::vcf_type_lowpass"
573        elif test "${enableval}" = "lpt" ; then
574           config_override_filter_type="::gig::vcf_type_lowpassturbo"
575        elif test ! "${enableval}" = "no"; then
576           AC_MSG_ERROR([Unknown filter type for parameter --enable-override-filter-type])
577        fi
578      ],
579      [config_override_filter_type="no"]
580    )
581    if test ! "$config_override_filter_type" = "no"; then
582      AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_FILTER_TYPE, $config_override_filter_type, [Define to a filter type to always force that filter type.])
583    fi
584    
585    AC_ARG_ENABLE(gs-checksum,
586      [  --enable-gs-checksum
587                              Enable Roland General Synth SysEx checksum check
588                              (default=no). If this is enabled, all GS SysEx
589                              messages which do not provide a correct checksum
590                              will be ignored. This is disabled by default as
591                              not all devices honor GS checksums.],
592      [config_assert_gs_sysex_checksum="yes"],
593      [config_assert_gs_sysex_checksum="no"]
594    )
595    if test "config_assert_gs_sysex_checksum" = "yes"; then
596      AC_DEFINE_UNQUOTED(CONFIG_ASSERT_GS_SYSEX_CHECKSUM, 1, [Define to 1 if you want to enable GS SysEx check.])
597    fi
598    
599    AC_ARG_ENABLE(signed-triang-algo,
600      [  --enable-signed-triang-algo
601                              Signed triangular wave algorithm to be used (e.g. for LFOs).
602                              Currently available options:
603                                intmath:
604                                  Uses integer math without any branch will then be
605                                  converted to floating point value for each sample point.
606                                  This int->float conversion might hurt on some systems.
607                                intmathabs:
608                                  Similar to intmath but uses abs() function.
609                                  Depending on compiler and platrofm this could
610                                  perform better than integer math as it avoids
611                                  an extra integer multiply instruction.
612    
613                                diharmonic:
614                                  The triangular wave will be approximated by adding two
615                                  sinusoidials. This solution might especially hurt on
616                                  systems with weak floating point unit.
617                                benchmark (default):
618                                  This is not an algorithm. Use this option if the
619                                  appropriate algorithm should be automatically
620                                  chosen by the configure script by performing a
621                                  benchmark between the algorithms mentioned above.
622                                  This will NOT work for cross compilation!],
623      [ if test ! "(" "${enableval}" = "intmath" \
624                  -o "${enableval}" = "intmathabs" \
625                  -o "${enableval}" = "diharmonic" ")" ; then
626          AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-signed-triang-algo])
627        else
628          config_signed_triang_algo="${enableval}"
629        fi
630      ],
631      [config_signed_triang_algo="benchmark"]
632    )
633    
634    AC_ARG_ENABLE(unsigned-triang-algo,
635      [  --enable-unsigned-triang-algo
636                              Unsigned triangular wave algorithm to be used (e.g. for LFOs).
637                              Currently available options:
638                                intmath:
639                                  Uses integer math without any branch will then be
640                                  converted to floating point value for each sample point.
641                                  This int->float conversion might hurt on some systems.
642                                intmathabs:
643                                  Similar to intmath but uses abs() function.
644                                  Depending on compiler and platrofm this could
645                                  perform better than integer math as it avoids
646                                  an extra integer multiply instruction.
647    
648                                diharmonic:
649                                  The triangular wave will be approximated by adding two
650                                  sinusoidials. This solution might especially hurt on
651                                  systems with weak floating point unit.
652                                benchmark (default):
653                                  This is not an algorithm. Use this option if the
654                                  appropriate algorithm should be automatically
655                                  chosen by the configure script by performing a
656                                  benchmark between the algorithms mentioned above.
657                                  This will NOT work for cross compilation!],
658      [ if test ! "(" "${enableval}" = "intmath" \
659                  -o "${enableval}" = "intmathabs" \
660                  -o "${enableval}" = "diharmonic" ")" ; then
661          AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-unsigned-triang-algo])
662        else
663          config_unsigned_triang_algo="${enableval}"
664        fi
665      ],
666      [config_unsigned_triang_algo="benchmark"]
667    )
668    
669    AC_ARG_ENABLE(process-muted-channels,
670      [  --enable-process-muted-channels
671                              Enable processing of muted channels (default=no).
672                              In that mode all MIDI events in the muted channels
673                              will be processed. This will provide information
674                              about the active voices in the muted channels and
675                              will not discard notes, triggered in mute mode,
676                              when the channel is unmuted. But also will reduce
677                              the efficiency.],
678      [config_process_muted_channels="yes"],
679      [config_process_muted_channels="no"]
680    )
681    if test "$config_process_muted_channels" = "yes"; then
682      AC_DEFINE_UNQUOTED(CONFIG_PROCESS_MUTED_CHANNELS, 1, [Define to 1 if you want to enable processing of muted channels.])
683    fi
684    
685    
686    ###########################################################################
687    # Automatic Benchmarks (to detect the best algorithms for the system)
688    
689    AC_LANG_SAVE
690    
691    if test "$config_signed_triang_algo" = "benchmark"; then
692        echo -n "benchmarking for the best (signed) triangular oscillator algorithm... "
693        AC_LANG_CPLUSPLUS
694        AC_TRY_RUN([
695                #define SIGNED 1
696                #define SILENT 1
697                #include "${srcdir}/benchmarks/triang.cpp"
698            ],
699            triang_signed=0,
700            triang_signed=$?,
701            triang_signed=0
702        )
703        if test "$triang_signed" = "2"; then
704            config_signed_triang_algo="intmath"
705            echo "integer math"
706        elif test "$triang_signed" = "3"; then
707            config_signed_triang_algo="diharmonic"
708            echo "di harmonics"
709        elif test "$triang_signed" = "5"; then
710            config_signed_triang_algo="intmathabs"
711            echo "integer math using abs()"
712        else
713            echo "Benchmark of signed triangular wave algorithms failed!"
714            echo "Maybe you are doing cross compilation? In that case you have to select"
715            echo "an algorithm manually with './configure --enable-signed-triang-algo=...'"
716            echo "Call './configure --help' for further information or read configure.in."
717            exit -1;
718        fi
719    fi
720    AC_DEFINE_UNQUOTED(CONFIG_SIGNED_TRIANG_ALGO, ${triang_signed}, [Define signed triangular wave algorithm to be used.])
721    
722    if test "$config_unsigned_triang_algo" = "benchmark"; then
723        echo -n "benchmarking for the best (unsigned) triangular oscillator algorithm... "
724        AC_LANG_CPLUSPLUS
725        AC_TRY_RUN([
726                #define SIGNED 0
727                #define SILENT 1
728                #include "${srcdir}/benchmarks/triang.cpp"
729            ],
730            triang_unsigned=0,
731            triang_unsigned=$?,
732            triang_unsigned=0
733        )
734        if test "$triang_unsigned" = "2"; then
735            config_unsigned_triang_algo="intmath"
736            echo "integer math"
737        elif test "$triang_unsigned" = "3"; then
738            config_unsigned_triang_algo="diharmonic"
739            echo "di harmonics"
740        elif test "$triang_unsigned" = "5"; then
741            config_unsigned_triang_algo="intmathabs"
742            echo "integer math using abs()"
743        else
744            echo "Benchmark of unsigned triangular wave algorithms failed!"
745            echo "Maybe you are doing cross compilation? In that case you have to select"
746            echo "an algorithm manually with './configure --enable-unsigned-triang-algo=...'"
747            echo "Call './configure --help' for further information or read configure.in."
748            exit -1;
749        fi
750    fi
751    AC_DEFINE_UNQUOTED(CONFIG_UNSIGNED_TRIANG_ALGO, ${triang_unsigned}, [Define unsigned triangular wave algorithm to be used.])
752    
753    AC_LANG_RESTORE
754    
755    
756    ###########################################################################
757    # Create Build Files
758    
759  AM_CONFIG_HEADER(config.h)  AM_CONFIG_HEADER(config.h)
760  AM_INIT_AUTOMAKE(linuxsampler, 0.2)  AM_INIT_AUTOMAKE(linuxsampler, "$LINUXSAMPLER_RELEASE_MAJOR.$LINUXSAMPLER_RELEASE_MINOR.$LINUXSAMPLER_RELEASE_BUILD")
761    
762  AC_LANG_CPLUSPLUS  AC_LANG_CPLUSPLUS
763  AC_PROG_CXX  AC_PROG_CXX
 AM_PROG_LIBTOOL  
764    
765  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
766    if test "$config_asm" = "yes"; then
767      if test "$def_arch_x86" = 1; then
768        CXXFLAGS="$CXXFLAGS -msse"
769      fi
770    fi
771    
772    # autoconf 2.59/libtool 1.5.12 bug? work-around. Without a check like
773    # this, the dlfcn.h check in am_prog_libtool may fail.
774    AC_CHECK_HEADER(stdlib.h)
775    
776    AC_OUTPUT( \
777        Makefile \
778        man/Makefile \
779        man/linuxsampler.1 \
780        src/Makefile \
781        src/network/Makefile \
782        src/engines/Makefile \
783        src/engines/gig/Makefile \
784        src/engines/common/Makefile \
785        src/common/Makefile src/lib/Makefile \
786        src/lib/fileloader/Makefile \
787        src/lib/fileloader/libgig/Makefile \
788        src/testcases/Makefile \
789        src/drivers/Makefile \
790        src/drivers/audio/Makefile \
791        src/drivers/midi/Makefile \
792        linuxsampler.spec \
793        debian/Makefile \
794        Artwork/Makefile \
795        scripts/Makefile \
796        osx/Makefile \
797        osx/LinuxSampler.xcode/Makefile \
798        Documentation/Makefile \
799        Documentation/Engines/Makefile \
800        Documentation/Engines/gig/Makefile \
801        linuxsampler.pc \
802        Doxyfile \
803    )
804    
805    
806    ###########################################################################
807    # Output All Configuration Options
808    
809    echo ""
810    echo "#####################################################################"
811    echo "# LinuxSampler Configuration                                        #"
812    echo "#-------------------------------------------------------------------#"
813    echo "# Assembly Optimizations: ${config_asm}"
814    echo "# Development Mode: ${config_dev_mode}"
815    echo "# Debug Level: ${config_debug_level}"
816    echo "# Use Exceptions in RT Context: ${config_rt_exceptions}"
817    echo "# Preload Samples: ${config_preload_samples}"
818    echo "# Maximum Pitch: ${config_max_pitch} (octaves)"
819    echo "# Maximum Events: ${config_max_events}"
820    echo "# Envelope Bottom Level: ${config_eg_bottom} (linear)"
821    echo "# Envelope Minimum Release Time: ${config_eg_min_release_time} s"
822    echo "# Streams to be refilled per Disk Thread Cycle: ${config_refill_streams}"
823    echo "# Minimum Stream Refill Size: ${config_stream_min_refill}"
824    echo "# Maximum Stream Refill Size: ${config_stream_max_refill}"
825    echo "# Stream Size: ${config_stream_size}"
826    echo "# Maximum Disk Streams: ${config_max_streams}"
827    echo "# Maximum Voices: ${config_max_voices}"
828    echo "# Default Subfragment Size: ${config_subfragment_size}"
829    echo "# Global Volume Attenuation: ${config_global_attenuation}"
830    echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}"
831    echo "# Signed Triangular Oscillator Algorithm: ${config_signed_triang_algo}"
832    echo "# Unsigned Triangular Oscillator Algorithm: ${config_unsigned_triang_algo}"
833    echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte"
834    echo "# Force Filter Usage: ${config_force_filter}"
835    echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz"
836    echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz"
837    echo "# Override Filter Cutoff Controller: ${config_override_cutoff_ctrl}"
838    echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"
839    echo "# Override Filter Type: ${config_override_filter_type}"
840    echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}"
841    echo "# Process Muted Channels: ${config_process_muted_channels}"
842    echo "#-------------------------------------------------------------------#"
843    echo "# Read './configure --help' or file 'configure.in' for details.     #"
844    echo "#####################################################################"
845    echo ""
846    echo "Good. Now type 'make' to compile, followed by 'make install' as root."
847    echo ""

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

  ViewVC Help
Powered by ViewVC