/[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 692 by schoenebeck, Fri Jul 15 16:59:35 2005 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    
# 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.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!"
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 220  fi Line 259  fi
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.])
# Line 397  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(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
# Line 430  AC_ARG_ENABLE(sysex-buffer-size, Line 484  AC_ARG_ENABLE(sysex-buffer-size,
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
# Line 544  if test "config_assert_gs_sysex_checksum Line 586  if test "config_assert_gs_sysex_checksum
586    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.])
587  fi  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  # Create Build Files
748    
749  AM_CONFIG_HEADER(config.h)  AM_CONFIG_HEADER(config.h)
750  AM_INIT_AUTOMAKE(linuxsampler, 0.3.3)  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
# Line 565  fi Line 763  fi
763  # this, the dlfcn.h check in am_prog_libtool may fail.  # this, the dlfcn.h check in am_prog_libtool may fail.
764  AC_CHECK_HEADER(stdlib.h)  AC_CHECK_HEADER(stdlib.h)
765    
 AM_PROG_LIBTOOL  
   
766  AC_OUTPUT( \  AC_OUTPUT( \
767      Makefile \      Makefile \
768      man/Makefile \      man/Makefile \
# Line 592  AC_OUTPUT( \ Line 788  AC_OUTPUT( \
788      Documentation/Makefile \      Documentation/Makefile \
789      Documentation/Engines/Makefile \      Documentation/Engines/Makefile \
790      Documentation/Engines/gig/Makefile \      Documentation/Engines/gig/Makefile \
791        linuxsampler.pc \
792        Doxyfile \
793  )  )
794    
795    
# Line 617  echo "# Maximum Stream Refill Size: ${co Line 815  echo "# Maximum Stream Refill Size: ${co
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}"
821    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"
# Line 627  echo "# Override Filter Cutoff Controlle Line 827  echo "# Override Filter Cutoff Controlle
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 "#####################################################################"

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

  ViewVC Help
Powered by ViewVC