/[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 12 by schoenebeck, Sun Nov 16 19:01:50 2003 UTC revision 738 by schoenebeck, Tue Aug 16 17:14:25 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    
40  echo -n "Checking whether x86 architecture... "  AC_SUBST(target)
41    AC_SUBST(target_alias)
42    AC_SUBST(target_cpu)
43    AC_SUBST(target_os)
44    AC_SUBST(target_vendor)
45    
46    
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 13  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,
108        AC_CHECK_LIB(asound, main,
109                                 have_alsa=1
110                                 ,
111                                 have_alsa=0
112                    )
113                    ,
114                    have_alsa=0
115    )
116    if test "$have_alsa" = "1"; then
117        have_midi_input_driver="true"
118        have_audio_output_driver="true";
119    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... "
124    AC_LANG_SAVE
125    AC_LANG_C
126    AC_TRY_RUN([
127    #include <alsa/asoundlib.h>
128    void main(void) {
129    /* ensure backward compatibility */
130    #if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
131    #define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
132    #endif
133    exit(SND_LIB_MAJOR);
134    }
135    ],
136    alsa_major=0,
137    alsa_major=$?,
138    alsa_major=0
139    )
140    AC_TRY_RUN([
141    #include <alsa/asoundlib.h>
142    void main(void) {
143    /* ensure backward compatibility */
144    #if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
145    #define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
146    #endif
147    exit(SND_LIB_MINOR);
148    }
149    ],
150    alsa_minor=0,
151    alsa_minor=$?,
152    alsa_minor=0
153    )
154    AC_TRY_RUN([
155    #include <alsa/asoundlib.h>
156    void main(void) {
157    /* ensure backward compatibility */
158    #if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
159    #define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
160    #endif
161    exit(SND_LIB_SUBMINOR);
162    }
163    ],
164    alsa_subminor=0,
165    alsa_subminor=$?,
166    alsa_subminor=0
167    )
168    AC_LANG_RESTORE
169    echo "$alsa_major.$alsa_minor.$alsa_subminor";
170    AC_DEFINE_UNQUOTED(ALSA_MAJOR,$alsa_major,[Define to the major version number of your Alsa installation.])
171    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.])
173    
174    # JACK
175    PKG_CHECK_MODULES(JACK, jack, HAVE_JACK=true, HAVE_JACK=false)
176    AC_SUBST(JACK_LIBS)
177    AC_SUBST(JACK_CFLAGS)
178    if test $HAVE_JACK = false; then
179        HAVE_JACK=0;
180    else
181        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
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.])
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(voice-steal-algo,
455      [  --enable-voice-steal-algo
456                              Voice stealing algorithm to be used. Currently
457                              available options:
458                                none:
459                                  Disable voice stealing completely.
460                                oldestvoiceonkey (default):
461                                  Try to kill a voice on the same key first,
462                                  if no success, proceed with the oldest key.
463                                oldestkey:
464                                  Try to kill a voice from the oldest active
465                                  key.],
466      [ if test ! "(" "${enableval}" = "none" \
467                  -o "${enableval}" = "oldestvoiceonkey" \
468                  -o "${enableval}" = "oldestkey" ")" ; then
469          AC_MSG_ERROR([Unknown voice stealing algorithm for parameter --enable-voice-steal-algo])
470        else
471          config_voice_steal_algo="${enableval}"
472        fi
473      ],
474      [config_voice_steal_algo="oldestvoiceonkey"]
475    )
476    AC_DEFINE_UNQUOTED(CONFIG_VOICE_STEAL_ALGO, voice_steal_algo_${config_voice_steal_algo}, [Define voice stealing algorithm to be used.])
477    
478    AC_ARG_ENABLE(sysex-buffer-size,
479      [  --enable-sysex-buffer-size
480                              System Exclusive Message buffer size in kB
481                              (default=2048).],
482      [config_sysex_buffer_size="${enableval}"],
483      [config_sysex_buffer_size="2048"]
484    )
485    AC_DEFINE_UNQUOTED(CONFIG_SYSEX_BUFFER_SIZE, $config_sysex_buffer_size, [Define SysEx buffer size.])
486    
487    AC_ARG_ENABLE(force-filter,
488      [  --enable-force-filter
489                              If enabled will force filter to be used even if
490                              no usage was define in instrument patch files.
491                              (default=no).],
492      [config_force_filter="yes"],
493      [config_force_filter="no"]
494    )
495    if test "$config_force_filter" = "yes"; then
496      AC_DEFINE_UNQUOTED(CONFIG_FORCE_FILTER, 1, [Define to 1 to force filter usage.])
497    fi
498    
499    AC_ARG_ENABLE(filter-cutoff-min,
500      [  --enable-filter-cutoff-min
501                              Minimum filter cutoff frequency in Hz
502                              (default=100.0).],
503      [config_filter_cutoff_min="${enableval}"],
504      [config_filter_cutoff_min="100.0"]
505    )
506    AC_DEFINE_UNQUOTED(CONFIG_FILTER_CUTOFF_MIN, ${config_filter_cutoff_min}f, [Define min. filter cutoff frequency.])
507    
508    AC_ARG_ENABLE(filter-cutoff-max,
509      [  --enable-filter-cutoff-max
510                              Maximum filter cutoff frequency in Hz
511                              (default=10000.0).],
512      [config_filter_cutoff_max="${enableval}"],
513      [config_filter_cutoff_max="10000.0"]
514    )
515    AC_DEFINE_UNQUOTED(CONFIG_FILTER_CUTOFF_MAX, ${config_filter_cutoff_max}f, [Define max. filter cutoff frequency.])
516    
517    AC_ARG_ENABLE(override-cutoff-ctrl,
518      [  --enable-override-cutoff-ctrl
519                              Override filter cutoff MIDI controller (default=no).
520                              Note: you have to define the MIDI controller number
521                              here, it's not a boolean parameter type! If this
522                              option is used, controller number given by
523                              instrument patch will be ignored and instead this
524                              supplied value will be used.],
525      [config_override_cutoff_ctrl="${enableval}"],
526      [config_override_cutoff_ctrl="no"]
527    )
528    if test ! "$config_override_cutoff_ctrl" = "no"; then
529      AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_CUTOFF_CTRL, $config_override_cutoff_ctrl, [Define to a MIDI controller number to override cutoff control.])
530    fi
531    
532    AC_ARG_ENABLE(override-resonance-ctrl,
533      [  --enable-override-resonance-ctrl
534                              Override filter resonance MIDI controller
535                              (default=no). Note: you have to define the MIDI
536                              controller number here, it's not a boolean
537                              parameter type! If this option is used, controller
538                              number given by instrument patch will be ignored
539                              and instead this supplied value will be used.],
540      [config_override_resonance_ctrl="${enableval}"],
541      [config_override_resonance_ctrl="no"]
542    )
543    if test ! "$config_override_resonance_ctrl" = "no"; then
544      AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_RESONANCE_CTRL, $config_override_resonance_ctrl, [Define to a MIDI controller number to override resonance control.])
545    fi
546    
547    AC_ARG_ENABLE(override-filter-type,
548      [  --enable-override-filter-type
549                              Override filter type (default=no). Options:
550                              hp: for highpass
551                              bp: for bandpass
552                              br: for bandreject
553                              lp: for lowpass
554                              lpt: for lowpass turbo],
555      [ if   test "${enableval}" = "hp" ; then
556           config_override_filter_type="::gig::vcf_type_highpass"
557        elif test "${enableval}" = "bp" ; then
558           config_override_filter_type="::gig::vcf_type_bandpass"
559        elif test "${enableval}" = "br" ; then
560           config_override_filter_type="::gig::vcf_type_bandreject"
561        elif test "${enableval}" = "lp" ; then
562           config_override_filter_type="::gig::vcf_type_lowpass"
563        elif test "${enableval}" = "lpt" ; then
564           config_override_filter_type="::gig::vcf_type_lowpassturbo"
565        elif test ! "${enableval}" = "no"; then
566           AC_MSG_ERROR([Unknown filter type for parameter --enable-override-filter-type])
567        fi
568      ],
569      [config_override_filter_type="no"]
570    )
571    if test ! "$config_override_filter_type" = "no"; then
572      AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_FILTER_TYPE, $config_override_filter_type, [Define to a filter type to always force that filter type.])
573    fi
574    
575    AC_ARG_ENABLE(gs-checksum,
576      [  --enable-gs-checksum
577                              Enable Roland General Synth SysEx checksum check
578                              (default=no). If this is enabled, all GS SysEx
579                              messages which do not provide a correct checksum
580                              will be ignored. This is disabled by default as
581                              not all devices honor GS checksums.],
582      [config_assert_gs_sysex_checksum="yes"],
583      [config_assert_gs_sysex_checksum="no"]
584    )
585    if test "config_assert_gs_sysex_checksum" = "yes"; then
586      AC_DEFINE_UNQUOTED(CONFIG_ASSERT_GS_SYSEX_CHECKSUM, 1, [Define to 1 if you want to enable GS SysEx check.])
587    fi
588    
589    AC_ARG_ENABLE(signed-triang-algo,
590      [  --enable-signed-triang-algo
591                              Signed triangular wave algorithm to be used (e.g. for LFOs).
592                              Currently available options:
593                                intmath:
594                                  Uses integer math without any branch will then be
595                                  converted to floating point value for each sample point.
596                                  This int->float conversion might hurt on some systems.
597                                intmathabs:
598                                  Similar to intmath but uses abs() function.
599                                  Depending on compiler and platrofm this could
600                                  perform better than integer math as it avoids
601                                  an extra integer multiply instruction.
602    
603                                diharmonic:
604                                  The triangular wave will be approximated by adding two
605                                  sinusoidials. This solution might especially hurt on
606                                  systems with weak floating point unit.
607                                benchmark (default):
608                                  This is not an algorithm. Use this option if the
609                                  appropriate algorithm should be automatically
610                                  chosen by the configure script by performing a
611                                  benchmark between the algorithms mentioned above.
612                                  This will NOT work for cross compilation!],
613      [ if test ! "(" "${enableval}" = "intmath" \
614                  -o "${enableval}" = "intmathabs" \
615                  -o "${enableval}" = "diharmonic" ")" ; then
616          AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-signed-triang-algo])
617        else
618          config_signed_triang_algo="${enableval}"
619        fi
620      ],
621      [config_signed_triang_algo="benchmark"]
622    )
623    
624    AC_ARG_ENABLE(unsigned-triang-algo,
625      [  --enable-unsigned-triang-algo
626                              Unsigned triangular wave algorithm to be used (e.g. for LFOs).
627                              Currently available options:
628                                intmath:
629                                  Uses integer math without any branch will then be
630                                  converted to floating point value for each sample point.
631                                  This int->float conversion might hurt on some systems.
632                                intmathabs:
633                                  Similar to intmath but uses abs() function.
634                                  Depending on compiler and platrofm this could
635                                  perform better than integer math as it avoids
636                                  an extra integer multiply instruction.
637    
638                                diharmonic:
639                                  The triangular wave will be approximated by adding two
640                                  sinusoidials. This solution might especially hurt on
641                                  systems with weak floating point unit.
642                                benchmark (default):
643                                  This is not an algorithm. Use this option if the
644                                  appropriate algorithm should be automatically
645                                  chosen by the configure script by performing a
646                                  benchmark between the algorithms mentioned above.
647                                  This will NOT work for cross compilation!],
648      [ if test ! "(" "${enableval}" = "intmath" \
649                  -o "${enableval}" = "intmathabs" \
650                  -o "${enableval}" = "diharmonic" ")" ; then
651          AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-unsigned-triang-algo])
652        else
653          config_unsigned_triang_algo="${enableval}"
654        fi
655      ],
656      [config_unsigned_triang_algo="benchmark"]
657    )
658    
659    AC_ARG_ENABLE(process-muted-channels,
660      [  --enable-process-muted-channels
661                              Enable processing of muted channels (default=no).
662                              In that mode all MIDI events in the muted channels
663                              will be processed. This will provide information
664                              about the active voices in the muted channels and
665                              will not discard notes, triggered in mute mode,
666                              when the channel is unmuted. But also will reduce
667                              the efficiency.],
668      [config_process_muted_channels="yes"],
669      [config_process_muted_channels="no"]
670    )
671    if test "$config_process_muted_channels" = "yes"; then
672      AC_DEFINE_UNQUOTED(CONFIG_PROCESS_MUTED_CHANNELS, 1, [Define to 1 if you want to enable processing of muted channels.])
673    fi
674    
675    
676    ###########################################################################
677    # Automatic Benchmarks (to detect the best algorithms for the system)
678    
679    AC_LANG_SAVE
680    
681    if test "$config_signed_triang_algo" = "benchmark"; then
682        echo -n "benchmarking for the best (signed) triangular oscillator algorithm... "
683        AC_LANG_CPLUSPLUS
684        AC_TRY_RUN([
685                #define SIGNED 1
686                #define SILENT 1
687                #include "${srcdir}/benchmarks/triang.cpp"
688            ],
689            triang_signed=0,
690            triang_signed=$?,
691            triang_signed=0
692        )
693        if test "$triang_signed" = "2"; then
694            config_signed_triang_algo="intmath"
695            echo "integer math"
696        elif test "$triang_signed" = "3"; then
697            config_signed_triang_algo="diharmonic"
698            echo "di harmonics"
699        elif test "$triang_signed" = "5"; then
700            config_signed_triang_algo="intmathabs"
701            echo "integer math using abs()"
702        else
703            echo "Benchmark of signed triangular wave algorithms failed!"
704            echo "Maybe you are doing cross compilation? In that case you have to select"
705            echo "an algorithm manually with './configure --enable-signed-triang-algo=...'"
706            echo "Call './configure --help' for further information or read configure.in."
707            exit -1;
708        fi
709    fi
710    AC_DEFINE_UNQUOTED(CONFIG_SIGNED_TRIANG_ALGO, ${triang_signed}, [Define signed triangular wave algorithm to be used.])
711    
712    if test "$config_unsigned_triang_algo" = "benchmark"; then
713        echo -n "benchmarking for the best (unsigned) triangular oscillator algorithm... "
714        AC_LANG_CPLUSPLUS
715        AC_TRY_RUN([
716                #define SIGNED 0
717                #define SILENT 1
718                #include "${srcdir}/benchmarks/triang.cpp"
719            ],
720            triang_unsigned=0,
721            triang_unsigned=$?,
722            triang_unsigned=0
723        )
724        if test "$triang_unsigned" = "2"; then
725            config_unsigned_triang_algo="intmath"
726            echo "integer math"
727        elif test "$triang_unsigned" = "3"; then
728            config_unsigned_triang_algo="diharmonic"
729            echo "di harmonics"
730        elif test "$triang_unsigned" = "5"; then
731            config_unsigned_triang_algo="intmathabs"
732            echo "integer math using abs()"
733        else
734            echo "Benchmark of unsigned triangular wave algorithms failed!"
735            echo "Maybe you are doing cross compilation? In that case you have to select"
736            echo "an algorithm manually with './configure --enable-unsigned-triang-algo=...'"
737            echo "Call './configure --help' for further information or read configure.in."
738            exit -1;
739        fi
740    fi
741    AC_DEFINE_UNQUOTED(CONFIG_UNSIGNED_TRIANG_ALGO, ${triang_unsigned}, [Define unsigned triangular wave algorithm to be used.])
742    
743    AC_LANG_RESTORE
744    
745    
746    ###########################################################################
747    # Create Build Files
748    
749  AM_CONFIG_HEADER(config.h)  AM_CONFIG_HEADER(config.h)
750  AM_INIT_AUTOMAKE(linuxsampler, 0.1)  AM_INIT_AUTOMAKE(linuxsampler, "$LINUXSAMPLER_RELEASE_MAJOR.$LINUXSAMPLER_RELEASE_MINOR.$LINUXSAMPLER_RELEASE_BUILD")
751    
752  AC_LANG_CPLUSPLUS  AC_LANG_CPLUSPLUS
753  AC_PROG_CXX  AC_PROG_CXX
 AM_PROG_LIBTOOL  
754    
755  AC_OUTPUT(Makefile src/Makefile)  # some gcc 4.0 versions need -msse for SSE register allocations
756    if test "$config_asm" = "yes"; then
757      if test "$def_arch_x86" = 1; then
758        CXXFLAGS="$CXXFLAGS -msse"
759      fi
760    fi
761    
762    # autoconf 2.59/libtool 1.5.12 bug? work-around. Without a check like
763    # this, the dlfcn.h check in am_prog_libtool may fail.
764    AC_CHECK_HEADER(stdlib.h)
765    
766    AC_OUTPUT( \
767        Makefile \
768        man/Makefile \
769        man/linuxsampler.1 \
770        src/Makefile \
771        src/network/Makefile \
772        src/engines/Makefile \
773        src/engines/gig/Makefile \
774        src/engines/common/Makefile \
775        src/common/Makefile src/lib/Makefile \
776        src/lib/fileloader/Makefile \
777        src/lib/fileloader/libgig/Makefile \
778        src/testcases/Makefile \
779        src/drivers/Makefile \
780        src/drivers/audio/Makefile \
781        src/drivers/midi/Makefile \
782        linuxsampler.spec \
783        debian/Makefile \
784        Artwork/Makefile \
785        scripts/Makefile \
786        osx/Makefile \
787        osx/LinuxSampler.xcode/Makefile \
788        Documentation/Makefile \
789        Documentation/Engines/Makefile \
790        Documentation/Engines/gig/Makefile \
791        linuxsampler.pc \
792        Doxyfile \
793    )
794    
795    
796    ###########################################################################
797    # Output All Configuration Options
798    
799    echo ""
800    echo "#####################################################################"
801    echo "# LinuxSampler Configuration                                        #"
802    echo "#-------------------------------------------------------------------#"
803    echo "# Assembly Optimizations: ${config_asm}"
804    echo "# Development Mode: ${config_dev_mode}"
805    echo "# Debug Level: ${config_debug_level}"
806    echo "# Use Exceptions in RT Context: ${config_rt_exceptions}"
807    echo "# Preload Samples: ${config_preload_samples}"
808    echo "# Maximum Pitch: ${config_max_pitch} (octaves)"
809    echo "# Maximum Events: ${config_max_events}"
810    echo "# Envelope Bottom Level: ${config_eg_bottom} (linear)"
811    echo "# Envelope Minimum Release Time: ${config_eg_min_release_time} s"
812    echo "# Streams to be refilled per Disk Thread Cycle: ${config_refill_streams}"
813    echo "# Minimum Stream Refill Size: ${config_stream_min_refill}"
814    echo "# Maximum Stream Refill Size: ${config_stream_max_refill}"
815    echo "# Stream Size: ${config_stream_size}"
816    echo "# Maximum Disk Streams: ${config_max_streams}"
817    echo "# Maximum Voices: ${config_max_voices}"
818    echo "# Default Subfragment Size: ${config_subfragment_size}"
819    echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}"
820    echo "# Signed Triangular Oscillator Algorithm: ${config_signed_triang_algo}"
821    echo "# Unsigned Triangular Oscillator Algorithm: ${config_unsigned_triang_algo}"
822    echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte"
823    echo "# Force Filter Usage: ${config_force_filter}"
824    echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz"
825    echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz"
826    echo "# Override Filter Cutoff Controller: ${config_override_cutoff_ctrl}"
827    echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"
828    echo "# Override Filter Type: ${config_override_filter_type}"
829    echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}"
830    echo "# Process Muted Channels: ${config_process_muted_channels}"
831    echo "#-------------------------------------------------------------------#"
832    echo "# Read './configure --help' or file 'configure.in' for details.     #"
833    echo "#####################################################################"
834    echo ""
835    echo "Good. Now type 'make' to compile, followed by 'make install' as root."
836    echo ""

Legend:
Removed from v.12  
changed lines
  Added in v.738

  ViewVC Help
Powered by ViewVC