Name: rtmidi Version: 1.0.15 Release: 1%{?dist} Summary: Library for realtime MIDI input/output (ALSA support) # Request to send in changes is considered optional. License: MIT URL: http://www.music.mcgill.ca/~gary/rtmidi/index.html Source0: http://www.music.mcgill.ca/~gary/rtmidi/release/%{name}-%{version}.tar.gz Source1: rtmidi.pc Source2: rtmidi-jack.pc Patch0: rtmidi-1.0.15-shared.patch BuildRequires: alsa-lib-devel, jack-audio-connection-kit-devel %description RtMidi is a set of C++ classes (RtMidiIn and RtMidiOut) that provides a common API (Application Programming Interface) for realtime MIDI input/output across Linux (ALSA & Jack), Macintosh OS X, Windows (Multimedia Library), and SGI operating systems. RtMidi significantly simplifies the process of interacting with computer MIDI hardware and software. It was designed with the following goals: * object oriented C++ design * simple, common API across all supported platforms * only two header files and one source file for easy inclusion in programming projects * MIDI device enumeration This package contains the RtMidi library compiled for ALSA support. %package devel Summary: Development headers and libraries for rtmidi Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-jack%{?_isa} = %{version}-%{release} Requires: alsa-lib-devel, jack-audio-connection-kit-devel %description devel Development headers and libraries for rtmidi. %package jack Summary: Library for realtime MIDI input/output (JACK support) %description jack RtMidi is a set of C++ classes (RtMidiIn and RtMidiOut) that provides a common API (Application Programming Interface) for realtime MIDI input/output across Linux (ALSA & Jack), Macintosh OS X, Windows (Multimedia Library), and SGI operating systems. RtMidi significantly simplifies the process of interacting with computer MIDI hardware and software. It was designed with the following goals: * object oriented C++ design * simple, common API across all supported platforms * only two header files and one source file for easy inclusion in programming projects * MIDI device enumeration This package contains the RtMidi library compiled for Jack support. %prep %setup -q %patch0 -p1 -b .shared cp %{SOURCE1} %{SOURCE2} . sed -i 's|@PREFIX@|%{_prefix}|g' *.pc sed -i 's|@LIBDIR@|%{_libdir}|g' *.pc sed -i 's|@INCLUDEDIR@|%{_includedir}|g' *.pc %build # First pass, jack. %configure --with-jack sed -i 's|@@LIBRTMIDI@@|-L.. -lrtmidi-jack|' tests/Makefile gcc %{optflags} -fPIC -D__LINUX_JACK__ -o lib%{name}-jack.so.0.0.0 -shared -Wl,-soname=lib%{name}-jack.so.0 $LDFLAGS -ljack RtMidi.cpp ln -s lib%{name}-jack.so.0.0.0 lib%{name}-jack.so pushd tests make for i in midiprobe midiout qmidiin cmidiin sysextest; do cp $i $i-jack done make clean rm -rf Makefile popd # Second pass, alsa %configure sed -i 's|@@LIBRTMIDI@@|-L.. -lrtmidi|' tests/Makefile gcc %{optflags} -fPIC -D__LINUX_ALSASEQ__ -o lib%{name}.so.0.0.0 -shared -Wl,-soname=lib%{name}.so.0 $LDFLAGS -lasound -lpthread RtMidi.cpp ln -s lib%{name}.so.0.0.0 lib%{name}.so pushd tests make popd %install mkdir -p %{buildroot}%{_libdir} install -m 0755 lib%{name}-jack.so.0.0.0 %{buildroot}%{_libdir} install -m 0755 lib%{name}.so.0.0.0 %{buildroot}%{_libdir} pushd %{buildroot}%{_libdir} ln -s lib%{name}-jack.so.0.0.0 lib%{name}-jack.so.0 ln -s lib%{name}-jack.so.0.0.0 lib%{name}-jack.so ln -s lib%{name}.so.0.0.0 lib%{name}.so.0 ln -s lib%{name}.so.0.0.0 lib%{name}.so popd mkdir -p %{buildroot}%{_includedir} install -m 0644 RtMidi.h RtError.h %{buildroot}%{_includedir} mkdir -p %{buildroot}%{_libdir}/pkgconfig/ install -m 0644 rtmidi.pc %{buildroot}%{_libdir}/pkgconfig/ install -m 0644 rtmidi-jack.pc %{buildroot}%{_libdir}/pkgconfig/ mkdir -p %{buildroot}%{_bindir} pushd tests for i in midiprobe midiout qmidiin cmidiin sysextest; do install -m 0755 $i %{buildroot}%{_bindir}/%{name}-$i install -m 0755 $i-jack %{buildroot}%{_bindir}/%{name}-$i-jack done popd %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %post jack -p /sbin/ldconfig %postun jack -p /sbin/ldconfig %files %doc readme %{_bindir}/%{name}-cmidiin %{_bindir}/%{name}-midiprobe %{_bindir}/%{name}-midiout %{_bindir}/%{name}-qmidiin %{_bindir}/%{name}-sysextest %{_libdir}/lib%{name}.so.* %files devel %{_includedir}/RtMidi.h %{_includedir}/RtError.h %{_libdir}/lib%{name}.so %{_libdir}/lib%{name}-jack.so %{_libdir}/pkgconfig/%{name}.pc %{_libdir}/pkgconfig/%{name}-jack.pc %files jack %doc readme %{_bindir}/%{name}-cmidiin-jack %{_bindir}/%{name}-midiprobe-jack %{_bindir}/%{name}-midiout-jack %{_bindir}/%{name}-qmidiin-jack %{_bindir}/%{name}-sysextest-jack %{_libdir}/lib%{name}-jack.so.* %changelog * Thu Sep 1 2011 Tom Callaway - 1.0.15-1 - initial package