/[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 554 by schoenebeck, Thu May 19 19:25:14 2005 UTC revision 720 by senkov, Sun Jul 24 18:22:56 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 150  fi Line 185  fi
185  AM_CONDITIONAL(HAVE_JACK, test $HAVE_JACK = 1)  AM_CONDITIONAL(HAVE_JACK, test $HAVE_JACK = 1)
186  AC_DEFINE_UNQUOTED(HAVE_JACK,$HAVE_JACK,[Define to 1 if you have JACK installed.])  AC_DEFINE_UNQUOTED(HAVE_JACK,$HAVE_JACK,[Define to 1 if you have JACK installed.])
187    
188    # MidiShare (Linux, OS X, Windows)
189    AC_CHECK_HEADER(MidiShare.h,
190        AC_CHECK_LIB(MidiShare, MidiCountEvs,
191                                have_midishare=1,
192                                have_midishare=0
193                    )
194                    ,
195                    have_midishare=0
196    )
197    if test "$have_midishare" = "1"; then
198        have_midi_input_driver="true"
199    fi
200    AM_CONDITIONAL(HAVE_MIDISHARE, test $have_midishare = "1")
201    AC_DEFINE_UNQUOTED(HAVE_MIDISHARE,$have_midishare,[Define to 1 if you have MidiShare installed.])
202    
203    # CoreMIDI (OS X)
204    AC_CHECK_HEADER(CoreMIDI/CoreMIDI.h,
205                    have_coremidi=1,
206                    have_coremidi=0
207    )
208    if test "$have_coremidi" = "1"; then
209        have_midi_input_driver="true"
210    fi
211    AM_CONDITIONAL(HAVE_COREMIDI, test $have_coremidi = "1")
212    AC_DEFINE_UNQUOTED(HAVE_COREMIDI,$have_coremidi,[Define to 1 if you have CoreMIDI installed.])
213    
214  # Check presence of libgig  # Check presence of libgig
215  libgig_version="2.0.0"  libgig_version="2.0.1"
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 167  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.])
240    
241  if test "$have_midi_input_driver" = "false"; then  if test "$have_midi_input_driver" = "false"; then
242      echo "No supported MIDI input system found!"      echo "No supported MIDI input system found!"
243      echo "Sorry, LinuxSampler only supports ALSA as MIDI input driver at the moment!"      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;      exit -1;
248  fi  fi
249  if test "$have_audio_output_driver" = "false"; then  if test "$have_audio_output_driver" = "false"; then
# Line 190  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      [  --disable-asm
263                              Disable hand-crafted assembly optimizations
264                              (default=on). LinuxSampler provides CPU specific
265                              assembly optimizations for the most important
266                              synthesis algorithms. You usually don't want to
267                              disable that.],
268      [config_asm="no"],
269      [config_asm="yes"]
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    [  --enable-dev-mode
277                            Enable development mode (default=no). In that mode                            Enable development mode (default=no). In that mode
# Line 360  AC_ARG_ENABLE(voice-steal-algo, Line 442  AC_ARG_ENABLE(voice-steal-algo,
442                            available options:                            available options:
443                              none:                              none:
444                                Disable voice stealing completely.                                Disable voice stealing completely.
445                              oldestvoiceonkey:                              oldestvoiceonkey (default):
446                                Try to kill a voice on the same key first,                                Try to kill a voice on the same key first,
447                                if no success, proceed with the oldest key.                                if no success, proceed with the oldest key.
448                              oldestkey (default):                              oldestkey:
449                                Try to kill a voice from the oldest active                                Try to kill a voice from the oldest active
450                                key.],                                key.],
451    [ if test ! "(" "${enableval}" = "none" \    [ if test ! "(" "${enableval}" = "none" \
# Line 372  AC_ARG_ENABLE(voice-steal-algo, Line 454  AC_ARG_ENABLE(voice-steal-algo,
454        AC_MSG_ERROR([Unknown voice stealing algorithm for parameter --enable-voice-steal-algo])        AC_MSG_ERROR([Unknown voice stealing algorithm for parameter --enable-voice-steal-algo])
455      else      else
456        config_voice_steal_algo="${enableval}"        config_voice_steal_algo="${enableval}"
457      fi        fi
458    ],    ],
459    [config_voice_steal_algo="oldestkey"]    [config_voice_steal_algo="oldestvoiceonkey"]
460  )  )
461  AC_DEFINE_UNQUOTED(CONFIG_VOICE_STEAL_ALGO, voice_steal_algo_${config_voice_steal_algo}, [Define voice stealing algorithm to be used.])  AC_DEFINE_UNQUOTED(CONFIG_VOICE_STEAL_ALGO, voice_steal_algo_${config_voice_steal_algo}, [Define voice stealing algorithm to be used.])
462    
# Line 479  AC_ARG_ENABLE(override-filter-type, Line 561  AC_ARG_ENABLE(override-filter-type,
561         config_override_filter_type="::gig::vcf_type_lowpassturbo"         config_override_filter_type="::gig::vcf_type_lowpassturbo"
562      elif test ! "${enableval}" = "no"; then      elif test ! "${enableval}" = "no"; then
563         AC_MSG_ERROR([Unknown filter type for parameter --enable-override-filter-type])         AC_MSG_ERROR([Unknown filter type for parameter --enable-override-filter-type])
564      fi        fi
565    ],    ],
566    [config_override_filter_type="no"]    [config_override_filter_type="no"]
567  )  )
# Line 487  if test ! "$config_override_filter_type" Line 569  if test ! "$config_override_filter_type"
569    AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_FILTER_TYPE, $config_override_filter_type, [Define to a filter type to always force that filter type.])    AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_FILTER_TYPE, $config_override_filter_type, [Define to a filter type to always force that filter type.])
570  fi  fi
571    
572    AC_ARG_ENABLE(gs-checksum,
573      [  --enable-gs-checksum
574                              Enable Roland General Synth SysEx checksum check
575                              (default=no). If this is enabled, all GS SysEx
576                              messages which do not provide a correct checksum
577                              will be ignored. This is disabled by default as
578                              not all devices honor GS checksums.],
579      [config_assert_gs_sysex_checksum="yes"],
580      [config_assert_gs_sysex_checksum="no"]
581    )
582    if test "config_assert_gs_sysex_checksum" = "yes"; then
583      AC_DEFINE_UNQUOTED(CONFIG_ASSERT_GS_SYSEX_CHECKSUM, 1, [Define to 1 if you want to enable GS SysEx check.])
584    fi
585    
586    AC_ARG_ENABLE(signed-triang-algo,
587      [  --enable-signed-triang-algo
588                              Signed triangular wave algorithm to be used (e.g. for LFOs).
589                              Currently available options:
590                                intmath:
591                                  Uses integer math without any branch will then be
592                                  converted to floating point value for each sample point.
593                                  This int->float conversion might hurt on some systems.
594                                intmathabs:
595                                  Similar to intmath but uses abs() function.
596                                  Depending on compiler and platrofm this could
597                                  perform better than integer math as it avoids
598                                  an extra integer multiply instruction.
599    
600                                diharmonic:
601                                  The triangular wave will be approximated by adding two
602                                  sinusoidials. This solution might especially hurt on
603                                  systems with weak floating point unit.
604                                benchmark (default):
605                                  This is not an algorithm. Use this option if the
606                                  appropriate algorithm should be automatically
607                                  chosen by the configure script by performing a
608                                  benchmark between the algorithms mentioned above.
609                                  This will NOT work for cross compilation!],
610      [ if test ! "(" "${enableval}" = "intmath" \
611                  -o "${enableval}" = "intmathabs" \
612                  -o "${enableval}" = "diharmonic" ")" ; then
613          AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-signed-triang-algo])
614        else
615          config_signed_triang_algo="${enableval}"
616        fi
617      ],
618      [config_signed_triang_algo="benchmark"]
619    )
620    
621    AC_ARG_ENABLE(unsigned-triang-algo,
622      [  --enable-unsigned-triang-algo
623                              Unsigned triangular wave algorithm to be used (e.g. for LFOs).
624                              Currently available options:
625                                intmath:
626                                  Uses integer math without any branch will then be
627                                  converted to floating point value for each sample point.
628                                  This int->float conversion might hurt on some systems.
629                                intmathabs:
630                                  Similar to intmath but uses abs() function.
631                                  Depending on compiler and platrofm this could
632                                  perform better than integer math as it avoids
633                                  an extra integer multiply instruction.
634    
635                                diharmonic:
636                                  The triangular wave will be approximated by adding two
637                                  sinusoidials. This solution might especially hurt on
638                                  systems with weak floating point unit.
639                                benchmark (default):
640                                  This is not an algorithm. Use this option if the
641                                  appropriate algorithm should be automatically
642                                  chosen by the configure script by performing a
643                                  benchmark between the algorithms mentioned above.
644                                  This will NOT work for cross compilation!],
645      [ if test ! "(" "${enableval}" = "intmath" \
646                  -o "${enableval}" = "intmathabs" \
647                  -o "${enableval}" = "diharmonic" ")" ; then
648          AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-unsigned-triang-algo])
649        else
650          config_unsigned_triang_algo="${enableval}"
651        fi
652      ],
653      [config_unsigned_triang_algo="benchmark"]
654    )
655    
656    AC_ARG_ENABLE(process-muted-channels,
657      [  --enable-process-muted-channels
658                              Enable processing of muted channels (default=no).
659                              In that mode all MIDI events in the muted channels
660                              will be processed. This will provide information
661                              about the active voices in the muted channels and
662                              will not discard notes, triggered in mute mode,
663                              when the channel is unmuted. But also will reduce
664                              the efficiency.],
665      [config_process_muted_channels="yes"],
666      [config_process_muted_channels="no"]
667    )
668    if test "$config_process_muted_channels" = "yes"; then
669      AC_DEFINE_UNQUOTED(CONFIG_PROCESS_MUTED_CHANNELS, 1, [Define to 1 if you want to enable processing of muted channels.])
670    fi
671    
672    
673    ###########################################################################
674    # Automatic Benchmarks (to detect the best algorithms for the system)
675    
676    AC_LANG_SAVE
677    
678    if test "$config_signed_triang_algo" = "benchmark"; then
679        echo -n "benchmarking for the best (signed) triangular oscillator algorithm... "
680        AC_LANG_CPLUSPLUS
681        AC_TRY_RUN([
682                #define SIGNED 1
683                #define SILENT 1
684                #include "benchmarks/triang.cpp"
685            ],
686            triang_signed=0,
687            triang_signed=$?,
688            triang_signed=0
689        )
690        if test "$triang_signed" = "2"; then
691            config_signed_triang_algo="intmath"
692            echo "integer math"
693        elif test "$triang_signed" = "3"; then
694            config_signed_triang_algo="diharmonic"
695            echo "di harmonics"
696        elif test "$triang_signed" = "5"; then
697            config_signed_triang_algo="intmathabs"
698            echo "integer math using abs()"
699        else
700            echo "Benchmark of signed triangular wave algorithms failed!"
701            echo "Maybe you are doing cross compilation? In that case you have to select"
702            echo "an algorithm manually with './configure --enable-signed-triang-algo=...'"
703            echo "Call './configure --help' for further information or read configure.in."
704            exit -1;
705        fi
706    fi
707    AC_DEFINE_UNQUOTED(CONFIG_SIGNED_TRIANG_ALGO, signed_triang_algo_${config_signed_triang_algo}, [Define signed triangular wave algorithm to be used.])
708    
709    if test "$config_unsigned_triang_algo" = "benchmark"; then
710        echo -n "benchmarking for the best (unsigned) triangular oscillator algorithm... "
711        AC_LANG_CPLUSPLUS
712        AC_TRY_RUN([
713                #define SIGNED 0
714                #define SILENT 1
715                #include "benchmarks/triang.cpp"
716            ],
717            triang_unsigned=0,
718            triang_unsigned=$?,
719            triang_unsigned=0
720        )
721        if test "$triang_unsigned" = "2"; then
722            config_unsigned_triang_algo="intmath"
723            echo "integer math"
724        elif test "$triang_unsigned" = "3"; then
725            config_unsigned_triang_algo="diharmonic"
726            echo "di harmonics"
727        elif test "$triang_unsigned" = "5"; then
728            config_signed_triang_algo="intmathabs"
729            echo "integer math using abs()"
730        else
731            echo "Benchmark of unsigned triangular wave algorithms failed!"
732            echo "Maybe you are doing cross compilation? In that case you have to select"
733            echo "an algorithm manually with './configure --enable-unsigned-triang-algo=...'"
734            echo "Call './configure --help' for further information or read configure.in."
735            exit -1;
736        fi
737    fi
738    AC_DEFINE_UNQUOTED(CONFIG_UNSIGNED_TRIANG_ALGO, unsigned_triang_algo_${config_unsigned_triang_algo}, [Define unsigned triangular wave algorithm to be used.])
739    
740    AC_LANG_RESTORE
741    
742    
743  ###########################################################################  ###########################################################################
744  # Create Build Files  # Create Build Files
745    
746  AM_CONFIG_HEADER(config.h)  AM_CONFIG_HEADER(config.h)
747  AM_INIT_AUTOMAKE(linuxsampler, 0.3.1)  AM_INIT_AUTOMAKE(linuxsampler, "$LINUXSAMPLER_RELEASE_MAJOR.$LINUXSAMPLER_RELEASE_MINOR.$LINUXSAMPLER_RELEASE_BUILD")
748    
749  AC_LANG_CPLUSPLUS  AC_LANG_CPLUSPLUS
750  AC_PROG_CXX  AC_PROG_CXX
751    
752    # some gcc 4.0 versions need -msse for SSE register allocations
753    if test "$config_asm" = "yes"; then
754      if test "$def_arch_x86" = 1; then
755        CXXFLAGS="$CXXFLAGS -msse"
756      fi
757    fi
758    
759  # 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
760  # this, the dlfcn.h check in am_prog_libtool may fail.  # this, the dlfcn.h check in am_prog_libtool may fail.
761  AC_CHECK_HEADER(stdlib.h)  AC_CHECK_HEADER(stdlib.h)
762    
763  AM_PROG_LIBTOOL  AC_OUTPUT( \
764        Makefile \
765  AC_OUTPUT(Makefile 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 \
766        man/linuxsampler.1 \
767        src/Makefile \
768        src/network/Makefile \
769        src/engines/Makefile \
770        src/engines/gig/Makefile \
771        src/engines/common/Makefile \
772        src/common/Makefile src/lib/Makefile \
773        src/lib/fileloader/Makefile \
774        src/lib/fileloader/libgig/Makefile \
775        src/testcases/Makefile \
776        src/drivers/Makefile \
777        src/drivers/audio/Makefile \
778        src/drivers/midi/Makefile \
779        linuxsampler.spec \
780        debian/Makefile \
781        Artwork/Makefile \
782        scripts/Makefile \
783        osx/Makefile \
784        osx/LinuxSampler.xcode/Makefile \
785        Documentation/Makefile \
786        Documentation/Engines/Makefile \
787        Documentation/Engines/gig/Makefile \
788        linuxsampler.pc \
789        Doxyfile \
790    )
791    
792    
793  ###########################################################################  ###########################################################################
# Line 512  echo "" Line 797  echo ""
797  echo "#####################################################################"  echo "#####################################################################"
798  echo "# LinuxSampler Configuration                                        #"  echo "# LinuxSampler Configuration                                        #"
799  echo "#-------------------------------------------------------------------#"  echo "#-------------------------------------------------------------------#"
800    echo "# Assembly Optimizations: ${config_asm}"
801  echo "# Development Mode: ${config_dev_mode}"  echo "# Development Mode: ${config_dev_mode}"
802  echo "# Debug Level: ${config_debug_level}"  echo "# Debug Level: ${config_debug_level}"
803  echo "# Use Exceptions in RT Context: ${config_rt_exceptions}"  echo "# Use Exceptions in RT Context: ${config_rt_exceptions}"
# Line 526  echo "# Maximum Stream Refill Size: ${co Line 812  echo "# Maximum Stream Refill Size: ${co
812  echo "# Stream Size: ${config_stream_size}"  echo "# Stream Size: ${config_stream_size}"
813  echo "# Maximum Disk Streams: ${config_max_streams}"  echo "# Maximum Disk Streams: ${config_max_streams}"
814  echo "# Maximum Voices: ${config_max_voices}"  echo "# Maximum Voices: ${config_max_voices}"
815    echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}"
816    echo "# Signed Triangular Oscillator Algorithm: ${config_signed_triang_algo}"
817    echo "# Unsigned Triangular Oscillator Algorithm: ${config_unsigned_triang_algo}"
818  echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte"  echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte"
819  echo "# Filter Update Steps: ${config_filter_update_steps}"  echo "# Filter Update Steps: ${config_filter_update_steps}"
820  echo "# Force Filter Usage: ${config_force_filter}"  echo "# Force Filter Usage: ${config_force_filter}"
# Line 534  echo "# Filter Cutoff Maximum: ${config_ Line 823  echo "# Filter Cutoff Maximum: ${config_
823  echo "# Override Filter Cutoff Controller: ${config_override_cutoff_ctrl}"  echo "# Override Filter Cutoff Controller: ${config_override_cutoff_ctrl}"
824  echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"  echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"
825  echo "# Override Filter Type: ${config_override_filter_type}"  echo "# Override Filter Type: ${config_override_filter_type}"
826    echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}"
827    echo "# Process Muted Channels: ${config_process_muted_channels}"
828  echo "#-------------------------------------------------------------------#"  echo "#-------------------------------------------------------------------#"
829  echo "# Read './configure --help' or file 'configure.in' for details.     #"  echo "# Read './configure --help' or file 'configure.in' for details.     #"
830  echo "#####################################################################"  echo "#####################################################################"

Legend:
Removed from v.554  
changed lines
  Added in v.720

  ViewVC Help
Powered by ViewVC