diff --git a/Makefile.in b/Makefile.in index 51d3fa38..55857f0b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -6,10 +6,11 @@ LN = /bin/ln OBJECTS = RtMidi.o -STATIC = librtmidi.a +LIBNAME = librtmidi +STATIC = $(LIBNAME).a SHARED = @sharedlib@ -RELEASE = 2.0.0 -MAJOR = 1 +RELEASE = 2.0.1 +MAJOR = 2 LIBRARIES = $(STATIC) $(SHARED) CC = @CXX@ @@ -19,6 +20,8 @@ RANLIB = @RANLIB@ DEFS = @CPPFLAGS@ CFLAGS = @CXXFLAGS@ -Iinclude -fPIC +PREFIX = @prefix@ + all : $(LIBRARIES) tests: @@ -29,6 +32,7 @@ $(LIBRARIES): $(OBJECTS) ranlib $(STATIC) $(CC) -fPIC @libflags@ $(OBJECTS) @LIBS@ $(LN) -sf @sharedname@ $(SHARED) + $(LN) -sf @sharedname@ $(SHARED).$(MAJOR) # $(CC) -shared $(OBJECTS) -o $(SHARED) @LIBS@ @@ -38,6 +42,20 @@ $(LIBRARIES): $(OBJECTS) %.o : include/%.cpp $(CC) $(CFLAGS) $(DEFS) -c $(<) -o $@ +install: all + install --mode=755 $(STATIC) $(PREFIX)/lib/ + install --mode=755 @sharedname@ $(PREFIX)/lib/ + $(LN) -sf @sharedname@ $(PREFIX)/lib/$(SHARED) + $(LN) -sf @sharedname@ $(PREFIX)/lib/$(SHARED).$(MAJOR) + install --mode=644 $(LIBNAME).pc $(PREFIX)/lib/pkgconfig + install --mode=755 rtmidi-config $(PREFIX)/bin/ + install --mode=644 RtMidi.h RtError.h $(PREFIX)/include + +uninstall: + -@rm -vf $(patsubst %,$(PREFIX)/lib/%, $(LIBRARIES) $(SHARED).$(MAJOR) $(SHARED).$(RELEASE)) + -@rm -vf $(PREFIX)/lib/pkgconfig/$(LIBNAME).pc + -@rm -vf $(PREFIX)/bin/rtmidi-config + clean : $(RM) -f $(LIBRARIES) @sharedname@ $(SHARED)* $(RM) -f $(OBJECTS) @@ -55,3 +73,5 @@ strip : strip $(LIBRARIES) ranlib $(LIBRARIES) cd tests && $(MAKE) strip + +.PHONY: strip distclean clean uninstall diff --git a/configure.ac b/configure.ac index a62e00f4..ba8ba892 100644 --- a/configure.ac +++ b/configure.ac @@ -1,8 +1,8 @@ # Process this file with autoconf to produce a configure script. -AC_INIT(RtMidi, 2.0, gary@music.mcgill.ca, rtmidi) +AC_INIT(RtMidi, 2.0.1, gary@music.mcgill.ca, rtmidi) AC_CONFIG_AUX_DIR(config) AC_CONFIG_SRCDIR(RtMidi.cpp) -AC_CONFIG_FILES(rtmidi-config Makefile tests/Makefile) +AC_CONFIG_FILES([rtmidi-config librtmidi.pc Makefile tests/Makefile]) # Fill GXX with something before test. AC_SUBST( GXX, ["no"] ) @@ -26,6 +26,12 @@ AC_ARG_ENABLE(debug, [AC_SUBST( cppflag, [-D__RTMIDI_DEBUG__] ) AC_SUBST( cxxflag, [-g] ) AC_SUBST( object_path, [Debug] ) AC_MSG_RESULT(yes)], [AC_SUBST( cppflag, [] ) AC_SUBST( cxxflag, [-O3] ) AC_SUBST( object_path, [Release] ) AC_MSG_RESULT(no)]) +# Set paths if prefix is defined +if test x"$prefix" != x; then + LIBS="$LIBS -L$prefix/lib" + CPPFLAGS="$CPPFLAGS -I$prefix/include" +fi + # For -I and -D flags CPPFLAGS="$CPPFLAGS $cppflag" @@ -54,6 +60,7 @@ case $host in esac AC_SUBST( api, [""] ) +AC_SUBST( req, [""] ) AC_MSG_CHECKING(for MIDI API) case $host in *-*-linux*) @@ -65,12 +72,14 @@ case $host in # Look for ALSA flag AC_ARG_WITH(alsa, [ --with-alsa = choose native ALSA sequencer API support (linux only)], [ api="$api -D__LINUX_ALSA__" + req="$req alsa" AC_MSG_RESULT(using ALSA) AC_CHECK_LIB(asound, snd_seq_open, , AC_MSG_ERROR(ALSA support requires the asound library!))], ) if [test "$api" == "";] then AC_MSG_RESULT(using ALSA) AC_SUBST( api, [-D__LINUX_ALSA__] ) + req="$req alsa" AC_CHECK_LIB(asound, snd_seq_open, , AC_MSG_ERROR(ALSA sequencer support requires the asound library!)) fi @@ -136,4 +145,4 @@ CPPFLAGS="$CPPFLAGS $api" AC_OUTPUT -chmod oug+x rtmidi-config \ No newline at end of file +chmod oug+x rtmidi-config diff --git a/librtmidi.pc.in b/librtmidi.pc.in new file mode 100644 index 00000000..4a36c7ab --- /dev/null +++ b/librtmidi.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: librtmidi +Description: RtMidi - a set of C++ classes that provide a common API for realtime MIDI input/output +Version: 2.0.1 +Requires: @req@ +Libs: -L${libdir} -lrtmidi +Libs.private: -lpthread +Cflags: -pthread -I${includedir} @CPPFLAGS@ \ No newline at end of file diff --git a/rtmidi-config.in b/rtmidi-config.in index 2422b604..34d2a25d 100644 --- a/rtmidi-config.in +++ b/rtmidi-config.in @@ -8,11 +8,11 @@ LIBRARY="@LIBS@" CXXFLAGS="@CXXFLAGS@" CPPFLAGS="@CPPFLAGS@" -if (test "x$1" == "x--libs") ; then - echo "$LIBRARY" -elif (test "x$1" == "x--cxxflags") ; then +if (test "x$1" = "x--libs") ; then + echo "$LIBRARY -lrtmidi" +elif (test "x$1" = "x--cxxflags") ; then echo "$CXXFLAGS" -elif (test "x$1" == "x--cppflags") ; then +elif (test "x$1" = "x--cppflags") ; then echo "$CPPFLAGS" else echo "Unknown option: $1"