--- gigedit/trunk/configure.ac 2007/12/06 18:30:40 1562 +++ gigedit/trunk/configure.ac 2008/02/12 14:13:46 1679 @@ -102,8 +102,21 @@ # convert absolute LS plugin dir into relative dir # (see ch 27.10 of the automake manual, # "Installing to Hard-Coded Locations") - LINUXSAMPLER_PLUGIN_DIR=`echo "${LINUXSAMPLER_PLUGIN_DIR}" | sed 's/^.*\/lib\//\${libdir}\//g'` - echo "Relative plugin dir: ${LINUXSAMPLER_PLUGIN_DIR}" + # this one is extended to work with digit postfixed lib directories + # (e.g. "/usr/lib64/linuxsampler") as well + LINUXSAMPLER_PLUGIN_DIR=`echo "${LINUXSAMPLER_PLUGIN_DIR}" | sed 's/^.*\/lib[[0-9]]*\//\${libdir}\//g'` + if echo "${LINUXSAMPLER_PLUGIN_DIR}" | grep "\${libdir}" > /dev/null; then + echo "Relative plugin dir: ${LINUXSAMPLER_PLUGIN_DIR}" + else + echo "*********************************************************" + echo "* ! WARNING ! : Could not resolve LinuxSampler's plugin" + echo "* directory as relative path. This is probably not an" + echo "* issue if you're just going to install gigedit by" + echo "* 'make install', but it IS a problem if you're" + echo "* installing to a certain destination directory and/or" + echo "* compile in sandbox (e.g. Debian package or Gentoo emerge)" + echo "*********************************************************" + fi fi fi AC_SUBST(LINUXSAMPLER_CFLAGS) @@ -115,6 +128,48 @@ [Define to 1 if you have LinuxSampler installed.] ) +have_ls_vmidi=0 +if test $have_linuxsampler = "1"; then + AC_MSG_CHECKING([whether LinuxSampler supports virtual MIDI devices]) + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + LIBS="$LINUXSAMPLER_LIBS $LIBS" + CFLAGS="$CFLAGS $LINUXSAMPLER_CFLAGS" + CXXFLAGS="$CXXFLAGS $CFLAGS" + AC_TRY_COMPILE([ + #include + using namespace LinuxSampler; + ], [ + bool (VirtualMidiDevice::*ptr1)(uint8_t, uint8_t) = 0; + bool (VirtualMidiDevice::*ptr2)() = 0; + bool (VirtualMidiDevice::*ptr3)(uint8_t) = 0; + uint8_t (VirtualMidiDevice::*ptr4)(uint8_t) = 0; + ptr1 = &VirtualMidiDevice::SendNoteOnToSampler; + ptr2 = &VirtualMidiDevice::NotesChanged; + ptr3 = &VirtualMidiDevice::NoteChanged; + ptr4 = &VirtualMidiDevice::NoteOffVelocity; + ], [ + AC_MSG_RESULT(yes) + have_ls_vmidi=1 + ], [ + AC_MSG_RESULT(no) + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + echo "! Support for the virtual MIDI keyboard in gigedit will" + echo "! be disabled. You'll see the keyboard in gigedit, but" + echo "! you won't be able to trigger notes with it nor see" + echo "! active notes caused by external MIDI sources of LS." + echo "! Update LinuxSampler and recompile gigedit if you want" + echo "! this feature." + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + ] + ) + AC_LANG_RESTORE +fi +AC_DEFINE_UNQUOTED( + HAVE_LINUXSAMPLER_VIRTUAL_MIDI_DEVICE, $have_ls_vmidi, + [Define to 1 if LinuxSampler supports virtual MIDI devices.] +) + AC_CONFIG_HEADERS(config.h) AM_INIT_AUTOMAKE(gigedit, "$GIGEDIT_VER_MAJOR.$GIGEDIT_VER_MINOR.$GIGEDIT_VER_RELEASE")