212 |
AC_DEFINE_UNQUOTED(HAVE_COREMIDI,$have_coremidi,[Define to 1 if you have CoreMIDI installed.]) |
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.1" |
libgig_version="2.0.2" |
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!" |
259 |
# TODO: should we use AC_ARG_VAR(variable, description) instead? |
# TODO: should we use AC_ARG_VAR(variable, description) instead? |
260 |
|
|
261 |
AC_ARG_ENABLE(asm, |
AC_ARG_ENABLE(asm, |
262 |
[ --disable-asm |
[ --enable-asm |
263 |
Disable hand-crafted assembly optimizations |
Enable hand-crafted assembly optimizations |
264 |
(default=on). LinuxSampler provides CPU specific |
(default=off). LinuxSampler provides CPU specific |
265 |
assembly optimizations for the most important |
assembly optimizations for the most important |
266 |
synthesis algorithms. You usually don't want to |
synthesis algorithms. This is currently disabled |
267 |
disable that.], |
by default since current asm code is broken.], |
268 |
[config_asm="no"], |
[config_asm="yes"], |
269 |
[config_asm="yes"] |
[config_asm="no"] |
270 |
) |
) |
271 |
if test "$config_asm" = "yes"; then |
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.]) |
AC_DEFINE_UNQUOTED(CONFIG_ASM, 1, [Define to 1 if you want to enable hand-crafted asm optimizations.]) |
273 |
fi |
fi |
274 |
|
|
275 |
AC_ARG_ENABLE(dev-mode, |
AC_ARG_ENABLE(dev-mode, |
276 |
[ --enable-dev-mode |
[ --disable-dev-mode |
277 |
Enable development mode (default=no). In that mode |
Disable development mode (default=on). In that mode |
278 |
we do some extra sanity checks here and there. |
we do some extra sanity checks here and there. |
279 |
This helps to spot possible problems, but reduces |
This helps to spot possible problems, but reduces |
280 |
efficiency a bit], |
efficiency a bit], |
281 |
[config_dev_mode="yes"], |
[config_dev_mode="no"], |
282 |
[config_dev_mode="no"] |
[config_dev_mode="yes"] |
283 |
) |
) |
284 |
if test "$config_dev_mode" = "yes"; then |
if test "$config_dev_mode" = "yes"; then |
285 |
AC_DEFINE_UNQUOTED(CONFIG_DEVMODE, 1, [Define to 1 if you want to enable development mode.]) |
AC_DEFINE_UNQUOTED(CONFIG_DEVMODE, 1, [Define to 1 if you want to enable development mode.]) |
436 |
) |
) |
437 |
AC_DEFINE_UNQUOTED(CONFIG_MAX_VOICES, $config_max_voices, [Define max. voices.]) |
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, |
AC_ARG_ENABLE(voice-steal-algo, |
455 |
[ --enable-voice-steal-algo |
[ --enable-voice-steal-algo |
456 |
Voice stealing algorithm to be used. Currently |
Voice stealing algorithm to be used. Currently |
484 |
) |
) |
485 |
AC_DEFINE_UNQUOTED(CONFIG_SYSEX_BUFFER_SIZE, $config_sysex_buffer_size, [Define SysEx buffer size.]) |
AC_DEFINE_UNQUOTED(CONFIG_SYSEX_BUFFER_SIZE, $config_sysex_buffer_size, [Define SysEx buffer size.]) |
486 |
|
|
|
AC_ARG_ENABLE(filter-update-steps, |
|
|
[ --enable-filter-update-steps |
|
|
Amount of sample points after which filter |
|
|
parameters (cutoff, resonance) are going to be |
|
|
updated (default=64). Higher value means less CPU |
|
|
load, but also worse parameter resolution, this |
|
|
value will be aligned to a power of two.], |
|
|
[config_filter_update_steps="${enableval}"], |
|
|
[config_filter_update_steps="64"] |
|
|
) |
|
|
AC_DEFINE_UNQUOTED(CONFIG_FILTER_UPDATE_STEPS, $config_filter_update_steps, [Define amount of steps to refresh filter coefficients.]) |
|
|
|
|
487 |
AC_ARG_ENABLE(force-filter, |
AC_ARG_ENABLE(force-filter, |
488 |
[ --enable-force-filter |
[ --enable-force-filter |
489 |
If enabled will force filter to be used even if |
If enabled will force filter to be used even if |
594 |
Uses integer math without any branch will then be |
Uses integer math without any branch will then be |
595 |
converted to floating point value for each sample point. |
converted to floating point value for each sample point. |
596 |
This int->float conversion might hurt on some systems. |
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: |
diharmonic: |
604 |
The triangular wave will be approximated by adding two |
The triangular wave will be approximated by adding two |
605 |
sinusoidials. This solution might especially hurt on |
sinusoidials. This solution might especially hurt on |
611 |
benchmark between the algorithms mentioned above. |
benchmark between the algorithms mentioned above. |
612 |
This will NOT work for cross compilation!], |
This will NOT work for cross compilation!], |
613 |
[ if test ! "(" "${enableval}" = "intmath" \ |
[ if test ! "(" "${enableval}" = "intmath" \ |
614 |
|
-o "${enableval}" = "intmathabs" \ |
615 |
-o "${enableval}" = "diharmonic" ")" ; then |
-o "${enableval}" = "diharmonic" ")" ; then |
616 |
AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-signed-triang-algo]) |
AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-signed-triang-algo]) |
617 |
else |
else |
629 |
Uses integer math without any branch will then be |
Uses integer math without any branch will then be |
630 |
converted to floating point value for each sample point. |
converted to floating point value for each sample point. |
631 |
This int->float conversion might hurt on some systems. |
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: |
diharmonic: |
639 |
The triangular wave will be approximated by adding two |
The triangular wave will be approximated by adding two |
640 |
sinusoidials. This solution might especially hurt on |
sinusoidials. This solution might especially hurt on |
646 |
benchmark between the algorithms mentioned above. |
benchmark between the algorithms mentioned above. |
647 |
This will NOT work for cross compilation!], |
This will NOT work for cross compilation!], |
648 |
[ if test ! "(" "${enableval}" = "intmath" \ |
[ if test ! "(" "${enableval}" = "intmath" \ |
649 |
|
-o "${enableval}" = "intmathabs" \ |
650 |
-o "${enableval}" = "diharmonic" ")" ; then |
-o "${enableval}" = "diharmonic" ")" ; then |
651 |
AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-unsigned-triang-algo]) |
AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-unsigned-triang-algo]) |
652 |
else |
else |
656 |
[config_unsigned_triang_algo="benchmark"] |
[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) |
# Automatic Benchmarks (to detect the best algorithms for the system) |
684 |
AC_TRY_RUN([ |
AC_TRY_RUN([ |
685 |
#define SIGNED 1 |
#define SIGNED 1 |
686 |
#define SILENT 1 |
#define SILENT 1 |
687 |
#include "benchmarks/triang.cpp" |
#include "${srcdir}/benchmarks/triang.cpp" |
688 |
], |
], |
689 |
triang_signed=0, |
triang_signed=0, |
690 |
triang_signed=$?, |
triang_signed=$?, |
696 |
elif test "$triang_signed" = "3"; then |
elif test "$triang_signed" = "3"; then |
697 |
config_signed_triang_algo="diharmonic" |
config_signed_triang_algo="diharmonic" |
698 |
echo "di harmonics" |
echo "di harmonics" |
699 |
|
elif test "$triang_signed" = "5"; then |
700 |
|
config_signed_triang_algo="intmathabs" |
701 |
|
echo "integer math using abs()" |
702 |
else |
else |
703 |
echo "Benchmark of signed triangular wave algorithms failed!" |
echo "Benchmark of signed triangular wave algorithms failed!" |
704 |
echo "Maybe you are doing cross compilation? In that case you have to select" |
echo "Maybe you are doing cross compilation? In that case you have to select" |
707 |
exit -1; |
exit -1; |
708 |
fi |
fi |
709 |
fi |
fi |
710 |
AC_DEFINE_UNQUOTED(CONFIG_SIGNED_TRIANG_ALGO, signed_triang_algo_${config_signed_triang_algo}, [Define signed triangular wave algorithm to be used.]) |
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 |
if test "$config_unsigned_triang_algo" = "benchmark"; then |
713 |
echo -n "benchmarking for the best (unsigned) triangular oscillator algorithm... " |
echo -n "benchmarking for the best (unsigned) triangular oscillator algorithm... " |
715 |
AC_TRY_RUN([ |
AC_TRY_RUN([ |
716 |
#define SIGNED 0 |
#define SIGNED 0 |
717 |
#define SILENT 1 |
#define SILENT 1 |
718 |
#include "benchmarks/triang.cpp" |
#include "${srcdir}/benchmarks/triang.cpp" |
719 |
], |
], |
720 |
triang_unsigned=0, |
triang_unsigned=0, |
721 |
triang_unsigned=$?, |
triang_unsigned=$?, |
727 |
elif test "$triang_unsigned" = "3"; then |
elif test "$triang_unsigned" = "3"; then |
728 |
config_unsigned_triang_algo="diharmonic" |
config_unsigned_triang_algo="diharmonic" |
729 |
echo "di harmonics" |
echo "di harmonics" |
730 |
|
elif test "$triang_unsigned" = "5"; then |
731 |
|
config_unsigned_triang_algo="intmathabs" |
732 |
|
echo "integer math using abs()" |
733 |
else |
else |
734 |
echo "Benchmark of unsigned triangular wave algorithms failed!" |
echo "Benchmark of unsigned triangular wave algorithms failed!" |
735 |
echo "Maybe you are doing cross compilation? In that case you have to select" |
echo "Maybe you are doing cross compilation? In that case you have to select" |
738 |
exit -1; |
exit -1; |
739 |
fi |
fi |
740 |
fi |
fi |
741 |
AC_DEFINE_UNQUOTED(CONFIG_UNSIGNED_TRIANG_ALGO, unsigned_triang_algo_${config_unsigned_triang_algo}, [Define unsigned triangular wave algorithm to be used.]) |
AC_DEFINE_UNQUOTED(CONFIG_UNSIGNED_TRIANG_ALGO, ${triang_unsigned}, [Define unsigned triangular wave algorithm to be used.]) |
742 |
|
|
743 |
AC_LANG_RESTORE |
AC_LANG_RESTORE |
744 |
|
|
815 |
echo "# Stream Size: ${config_stream_size}" |
echo "# Stream Size: ${config_stream_size}" |
816 |
echo "# Maximum Disk Streams: ${config_max_streams}" |
echo "# Maximum Disk Streams: ${config_max_streams}" |
817 |
echo "# Maximum Voices: ${config_max_voices}" |
echo "# Maximum Voices: ${config_max_voices}" |
818 |
|
echo "# Default Subfragment Size: ${config_subfragment_size}" |
819 |
echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}" |
echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}" |
820 |
echo "# Signed Triangular Oscillator Algorithm: ${config_signed_triang_algo}" |
echo "# Signed Triangular Oscillator Algorithm: ${config_signed_triang_algo}" |
821 |
echo "# Unsigned Triangular Oscillator Algorithm: ${config_unsigned_triang_algo}" |
echo "# Unsigned Triangular Oscillator Algorithm: ${config_unsigned_triang_algo}" |
822 |
echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte" |
echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte" |
|
echo "# Filter Update Steps: ${config_filter_update_steps}" |
|
823 |
echo "# Force Filter Usage: ${config_force_filter}" |
echo "# Force Filter Usage: ${config_force_filter}" |
824 |
echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz" |
echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz" |
825 |
echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz" |
echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz" |
827 |
echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}" |
echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}" |
828 |
echo "# Override Filter Type: ${config_override_filter_type}" |
echo "# Override Filter Type: ${config_override_filter_type}" |
829 |
echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}" |
echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}" |
830 |
|
echo "# Process Muted Channels: ${config_process_muted_channels}" |
831 |
echo "#-------------------------------------------------------------------#" |
echo "#-------------------------------------------------------------------#" |
832 |
echo "# Read './configure --help' or file 'configure.in' for details. #" |
echo "# Read './configure --help' or file 'configure.in' for details. #" |
833 |
echo "#####################################################################" |
echo "#####################################################################" |