File: 0001-buildsystem.patch

package info (click to toggle)
rtmidi 2.1.0~ds0-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 776 kB
  • ctags: 567
  • sloc: cpp: 2,816; sh: 2,495; makefile: 36
file content (164 lines) | stat: -rw-r--r-- 4,670 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
---
 Makefile.in  |   13 +++++--------
 RtMidi.cpp   |    4 ++--
 RtMidi.h     |   14 ++++++++++++--
 configure.ac |   13 ++++++++++---
 rtmidi.pc.in |   14 ++++++++++++++
 5 files changed, 43 insertions(+), 15 deletions(-)

--- /dev/null
+++ rtmidi/rtmidi.pc.in
@@ -0,0 +1,14 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: rtmidi
+Description: Library for realtime MIDI input/output
+Version: @VERSION@
+URL: http://www.music.mcgill.ca/~gary/rtmidi/index.html
+Requires: @pc_requires@
+Conflicts:
+Libs: -L${libdir} -l@SONAME@
+Libs.private:
+Cflags: @api@
--- rtmidi.orig/RtMidi.cpp
+++ rtmidi/RtMidi.cpp
@@ -115,7 +115,7 @@ void RtMidiIn :: openMidiApi( RtMidi::Ap
 #endif
 }
 
-RtMidiIn :: RtMidiIn( RtMidi::Api api, const std::string clientName, unsigned int queueSizeLimit )
+extern RTMIDI_DLL_PUBLIC RtMidiIn :: RtMidiIn( RtMidi::Api api, const std::string clientName, unsigned int queueSizeLimit )
   : RtMidi()
 {
   if ( api != UNSPECIFIED ) {
@@ -184,7 +184,7 @@ void RtMidiOut :: openMidiApi( RtMidi::A
 #endif
 }
 
-RtMidiOut :: RtMidiOut( RtMidi::Api api, const std::string clientName )
+extern RTMIDI_DLL_PUBLIC RtMidiOut :: RtMidiOut( RtMidi::Api api, const std::string clientName )
 {
   if ( api != UNSPECIFIED ) {
     // Attempt to open the specified API.
--- rtmidi.orig/RtMidi.h
+++ rtmidi/RtMidi.h
@@ -43,6 +43,16 @@
 #ifndef RTMIDI_H
 #define RTMIDI_H
 
+#if defined _WIN32 || defined __CYGWIN__
+  #define RTMIDI_DLL_PUBLIC
+#else
+  #if __GNUC__ >= 4
+    #define RTMIDI_DLL_PUBLIC __attribute__( (visibility( "default" )) )
+  #else
+    #define RTMIDI_DLL_PUBLIC
+  #endif
+#endif
+
 #define RTMIDI_VERSION "2.1.0"
 
 #include <exception>
@@ -203,7 +213,7 @@ class RtMidi
 //
 // **************************************************************** //
 
-class RtMidiIn : public RtMidi
+class RTMIDI_DLL_PUBLIC RtMidiIn : public RtMidi
 {
  public:
 
@@ -345,7 +355,7 @@ class RtMidiIn : public RtMidi
 */
 /**********************************************************************/
 
-class RtMidiOut : public RtMidi
+class RTMIDI_DLL_PUBLIC RtMidiOut : public RtMidi
 {
  public:
 
--- rtmidi.orig/Makefile.in
+++ rtmidi/Makefile.in
@@ -7,32 +7,29 @@ LN = /bin/ln
 OBJECTS	= RtMidi.o
 
 LIBNAME = librtmidi
-STATIC = $(LIBNAME).a
 SHARED = @sharedlib@
 RELEASE = 2.1.0
 MAJOR = 2
-LIBRARIES = $(STATIC) $(SHARED)
+LIBRARIES = $(SHARED)
 
 CC       = @CXX@
 AR       = @AR@
 RANLIB   = @RANLIB@
 
 DEFS     = @CPPFLAGS@
-CFLAGS   = @CXXFLAGS@ -Iinclude -fPIC
+CFLAGS   += @CXXFLAGS@ -Iinclude -fPIC
 
 PREFIX   = @prefix@
 
 all : $(LIBRARIES)
 
-tests:
+check:
 	cd tests && $(MAKE) all
 
 $(LIBRARIES): $(OBJECTS)
-	$(AR) ruv $(STATIC) $(OBJECTS)
-	ranlib $(STATIC)
 	$(CC) -fPIC @libflags@ $(OBJECTS) @LIBS@
-	$(LN) -sf @sharedname@ $(SHARED)
-	$(LN) -sf @sharedname@ $(SHARED).$(MAJOR)
+	$(LN) -s @sharedname@.$(RELEASE) $(SHARED)
+	$(LN) -s @sharedname@.$(RELEASE) $(SHARED).$(MAJOR)
 
 #	$(CC) -shared $(OBJECTS) -o $(SHARED) @LIBS@
 
--- rtmidi.orig/configure.ac
+++ rtmidi/configure.ac
@@ -1,5 +1,6 @@
 # Process this file with autoconf to produce a configure script.
 AC_INIT(RtMidi, 2.1.0, gary@music.mcgill.ca, rtmidi)
+AC_SUBST(VERSION, [2.1.0])
 AC_CONFIG_AUX_DIR(config)
 AC_CONFIG_SRCDIR(RtMidi.cpp)
 AC_CONFIG_FILES([rtmidi-config librtmidi.pc Makefile tests/Makefile])
@@ -50,8 +51,8 @@ CXXFLAGS="$CXXFLAGS $cxxflag"
 AC_CANONICAL_HOST
 
 AC_SUBST( sharedlib, ["librtmidi.so"] )
-AC_SUBST( sharedname, ["librtmidi.so.\$(RELEASE)"] )
-AC_SUBST( libflags, ["-shared -Wl,-soname,\$(SHARED).\$(MAJOR) -o \$(SHARED).\$(RELEASE)"] )
+AC_SUBST( sharedname, ["librtmidi.so.\$(MAJOR)"] )
+AC_SUBST( libflags, ["-shared -Wl,-soname,\$(SHARED).\$(MAJOR) -o \$(SHARED).\$(MAJOR).\$(RELEASE)"] )
 case $host in
   *-apple*)
   AC_SUBST( sharedlib, ["librtmidi.dylib"] )
@@ -60,14 +61,20 @@ case $host in
 esac
 
 AC_SUBST( api, [""] )
+AC_SUBST( pc_requires, [""] )
 AC_SUBST( req, [""] )
 AC_MSG_CHECKING(for MIDI API)
 case $host in
   *-*-linux*)
   AC_ARG_WITH(jack, [  --with-jack = choose JACK server support (mac and linux only)], [
   api="$api -D__UNIX_JACK__"
+  pc_requires="$pc_requires"
   AC_MSG_RESULT(using JACK)
-  AC_CHECK_LIB(jack, jack_client_open, , AC_MSG_ERROR(JACK support requires the jack library!))], )
+  AC_CHECK_LIB(jack, jack_client_open, , AC_MSG_ERROR(JACK support requires the jack library!))
+  AC_SUBST(PC_FILE, [rtmidi.pc])
+  AC_SUBST(pc_requires, [jack])
+  AC_SUBST(SONAME, [rtmidi])
+  AC_CONFIG_FILES($PC_FILE:rtmidi.pc.in)] , )
 
   # Look for ALSA flag
   AC_ARG_WITH(alsa, [  --with-alsa = choose native ALSA sequencer API support (linux only)], [