/[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 609 by schoenebeck, Sat Jun 4 17:49:12 2005 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 177  AM_CONDITIONAL(HAVE_COREMIDI, test $have Line 212  AM_CONDITIONAL(HAVE_COREMIDI, test $have
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.0"  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!"
219      echo "You need to have libgig version ${libgig_version} installed!"      echo "You need to have libgig version ${libgig_version} installed!"
220      exit -1;      exit -1;
221    else
222        echo "yes, found libgig $libgig_version"
223  fi  fi
224  AC_SUBST(GIG_CFLAGS)  AC_SUBST(GIG_CFLAGS)
225  AC_SUBST(GIG_LIBS)  AC_SUBST(GIG_LIBS)
# Line 193  AC_SUBST(SQLITE3_LIBS) Line 230  AC_SUBST(SQLITE3_LIBS)
230  AC_SUBST(SQLITE3_CFLAGS)  AC_SUBST(SQLITE3_CFLAGS)
231  if test $HAVE_SQLITE3 = false; then  if test $HAVE_SQLITE3 = false; then
232      HAVE_SQLITE3=0;      HAVE_SQLITE3=0;
233        echo "no, support for instrument DB will be disabled!"
234  else  else
235      HAVE_SQLITE3=1      HAVE_SQLITE3=1
236        echo "yes"
237  fi  fi
238  AM_CONDITIONAL(HAVE_SQLITE3, test $HAVE_SQLITE3 = 1)  AM_CONDITIONAL(HAVE_SQLITE3, test $HAVE_SQLITE3 = 1)
239  AC_DEFINE_UNQUOTED(HAVE_SQLITE3,$HAVE_SQLITE3,[Define to 1 if you have SQLITE3 installed.])  AC_DEFINE_UNQUOTED(HAVE_SQLITE3,$HAVE_SQLITE3,[Define to 1 if you have SQLITE3 installed.])
# Line 219  fi Line 258  fi
258    
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,
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,  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.])
# Line 383  AC_ARG_ENABLE(max-voices, Line 436  AC_ARG_ENABLE(max-voices,
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(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,  AC_ARG_ENABLE(voice-steal-algo,
465    [  --enable-voice-steal-algo    [  --enable-voice-steal-algo
466                            Voice stealing algorithm to be used. Currently                            Voice stealing algorithm to be used. Currently
# Line 416  AC_ARG_ENABLE(sysex-buffer-size, Line 494  AC_ARG_ENABLE(sysex-buffer-size,
494  )  )
495  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.])
496    
 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.])  
   
497  AC_ARG_ENABLE(force-filter,  AC_ARG_ENABLE(force-filter,
498    [  --enable-force-filter    [  --enable-force-filter
499                            If enabled will force filter to be used even if                            If enabled will force filter to be used even if
# Line 530  if test "config_assert_gs_sysex_checksum Line 596  if test "config_assert_gs_sysex_checksum
596    AC_DEFINE_UNQUOTED(CONFIG_ASSERT_GS_SYSEX_CHECKSUM, 1, [Define to 1 if you want to enable GS SysEx check.])    AC_DEFINE_UNQUOTED(CONFIG_ASSERT_GS_SYSEX_CHECKSUM, 1, [Define to 1 if you want to enable GS SysEx check.])
597  fi  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  # Create Build Files
758    
759  AM_CONFIG_HEADER(config.h)  AM_CONFIG_HEADER(config.h)
760  AM_INIT_AUTOMAKE(linuxsampler, 0.3.1)  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
764    
765    # 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  # 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.  # this, the dlfcn.h check in am_prog_libtool may fail.
774  AC_CHECK_HEADER(stdlib.h)  AC_CHECK_HEADER(stdlib.h)
775    
776  AM_PROG_LIBTOOL  AC_OUTPUT( \
777        Makefile \
778  AC_OUTPUT(Makefile man/Makefile man/linuxsampler.1 src/Makefile src/network/Makefile src/engines/Makefile src/engines/gig/Makefile src/engines/common/Makefile src/common/Makefile src/lib/Makefile src/lib/fileloader/Makefile src/lib/fileloader/libgig/Makefile src/testcases/Makefile src/drivers/Makefile src/drivers/audio/Makefile src/drivers/midi/Makefile)      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  ###########################################################################  ###########################################################################
# Line 556  echo "" Line 810  echo ""
810  echo "#####################################################################"  echo "#####################################################################"
811  echo "# LinuxSampler Configuration                                        #"  echo "# LinuxSampler Configuration                                        #"
812  echo "#-------------------------------------------------------------------#"  echo "#-------------------------------------------------------------------#"
813    echo "# Assembly Optimizations: ${config_asm}"
814  echo "# Development Mode: ${config_dev_mode}"  echo "# Development Mode: ${config_dev_mode}"
815  echo "# Debug Level: ${config_debug_level}"  echo "# Debug Level: ${config_debug_level}"
816  echo "# Use Exceptions in RT Context: ${config_rt_exceptions}"  echo "# Use Exceptions in RT Context: ${config_rt_exceptions}"
# Line 570  echo "# Maximum Stream Refill Size: ${co Line 825  echo "# Maximum Stream Refill Size: ${co
825  echo "# Stream Size: ${config_stream_size}"  echo "# Stream Size: ${config_stream_size}"
826  echo "# Maximum Disk Streams: ${config_max_streams}"  echo "# Maximum Disk Streams: ${config_max_streams}"
827  echo "# Maximum Voices: ${config_max_voices}"  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}"  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"  echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte"
 echo "# Filter Update Steps: ${config_filter_update_steps}"  
834  echo "# Force Filter Usage: ${config_force_filter}"  echo "# Force Filter Usage: ${config_force_filter}"
835  echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz"  echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz"
836  echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz"  echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz"
# Line 580  echo "# Override Filter Cutoff Controlle Line 838  echo "# Override Filter Cutoff Controlle
838  echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"  echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"
839  echo "# Override Filter Type: ${config_override_filter_type}"  echo "# Override Filter Type: ${config_override_filter_type}"
840  echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}"  echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}"
841    echo "# Process Muted Channels: ${config_process_muted_channels}"
842  echo "#-------------------------------------------------------------------#"  echo "#-------------------------------------------------------------------#"
843  echo "# Read './configure --help' or file 'configure.in' for details.     #"  echo "# Read './configure --help' or file 'configure.in' for details.     #"
844  echo "#####################################################################"  echo "#####################################################################"

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

  ViewVC Help
Powered by ViewVC