Advertisement
h3xx

ardour-svn_vamp+rubberband+soundtouch_use_syslibs_and_do_not_build_if_already_installed.patch

Oct 26th, 2011
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 11.21 KB | None | 0 0
  1. Index: ardour/libs/vamp-sdk/SConscript
  2. ===================================================================
  3. --- ardour/libs/vamp-sdk/SConscript (revision 10313)
  4. +++ ardour/libs/vamp-sdk/SConscript (working copy)
  5. @@ -4,43 +4,46 @@
  6.  import os.path
  7.  import glob
  8.  
  9. -vampsdk_files = Split ("""
  10. -src/vamp-sdk/PluginAdapter.cpp
  11. -src/vamp-sdk/RealTime.cpp
  12. -""")
  13. +Import('env install_prefix libraries')
  14.  
  15. -vamphostsdk_files = Split ("""
  16. -src/vamp-hostsdk/PluginHostAdapter.cpp
  17. -src/vamp-hostsdk/PluginBufferingAdapter.cpp
  18. -src/vamp-hostsdk/PluginChannelAdapter.cpp
  19. -src/vamp-hostsdk/PluginInputDomainAdapter.cpp
  20. -src/vamp-hostsdk/PluginLoader.cpp
  21. -src/vamp-hostsdk/PluginWrapper.cpp
  22. -src/vamp-hostsdk/RealTime.cpp
  23. -""")
  24. +if env['BUILD_RUBBERBAND']:
  25.  
  26. -Import('env install_prefix libraries')
  27. -vampsdk = env.Clone()
  28. +    vampsdk_files = Split ("""
  29. +    src/vamp-sdk/PluginAdapter.cpp
  30. +    src/vamp-sdk/RealTime.cpp
  31. +    """)
  32.  
  33. -vampsdk.Merge ([libraries['fftw3'], libraries['fftw3f']])
  34. +    vamphostsdk_files = Split ("""
  35. +    src/vamp-hostsdk/PluginHostAdapter.cpp
  36. +    src/vamp-hostsdk/PluginBufferingAdapter.cpp
  37. +    src/vamp-hostsdk/PluginChannelAdapter.cpp
  38. +    src/vamp-hostsdk/PluginInputDomainAdapter.cpp
  39. +    src/vamp-hostsdk/PluginLoader.cpp
  40. +    src/vamp-hostsdk/PluginWrapper.cpp
  41. +    src/vamp-hostsdk/RealTime.cpp
  42. +    """)
  43.  
  44. -# HAVE_FFTW3 is used to help improve some performance aspects of VAMP's InputDomainAdapter
  45. +    vampsdk = env.Clone()
  46.  
  47. -vampsdk.Append (CPPATH='#libs/vamp-sdk/vamp', CXXFLAGS="-Ilibs/vamp-sdk -DHAVE_FFTW3")
  48. +    vampsdk.Merge ([libraries['fftw3'], libraries['fftw3f']])
  49.  
  50. -libvampsdk = vampsdk.SharedLibrary('vampsdk', vampsdk_files)
  51. -libvamphostsdk = vampsdk.SharedLibrary('vamphostsdk', vamphostsdk_files)
  52. +    # HAVE_FFTW3 is used to help improve some performance aspects of VAMP's InputDomainAdapter
  53.  
  54. -Default(libvampsdk)
  55. -Default(libvamphostsdk)
  56. +    vampsdk.Append (CPPATH='#libs/vamp-sdk/vamp', CXXFLAGS="-Ilibs/vamp-sdk -DHAVE_FFTW3")
  57.  
  58. -env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour2'), libvampsdk))
  59. -env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour2'), libvamphostsdk))
  60. +    libvampsdk = vampsdk.SharedLibrary('vamp-sdk', vampsdk_files)
  61. +    libvamphostsdk = vampsdk.SharedLibrary('vamp-hostsdk', vamphostsdk_files)
  62.  
  63. -env.Alias('tarball', env.Distribute (env['DISTTREE'],
  64. -                                     [ 'SConscript', 'COPYING', 'README' ] +
  65. -                                     vampsdk_files +
  66. -                                     vamphostsdk_files +
  67. -                                     glob.glob('vamp/*.h') +
  68. -                                     glob.glob('vamp-sdk/*.h') +
  69. -                                     glob.glob('vamp-hostsdk/*.h')))
  70. +    Default(libvampsdk)
  71. +    Default(libvamphostsdk)
  72. +
  73. +    env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour2'), libvampsdk))
  74. +    env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour2'), libvamphostsdk))
  75. +
  76. +    env.Alias('tarball', env.Distribute (env['DISTTREE'],
  77. +                    [ 'SConscript', 'COPYING', 'README' ] +
  78. +                    vampsdk_files +
  79. +                    vamphostsdk_files +
  80. +                    glob.glob('vamp/*.h') +
  81. +                    glob.glob('vamp-sdk/*.h') +
  82. +                    glob.glob('vamp-hostsdk/*.h')))
  83. Index: ardour/libs/soundtouch/SConscript
  84. ===================================================================
  85. --- ardour/libs/soundtouch/SConscript   (revision 10313)
  86. +++ ardour/libs/soundtouch/SConscript   (working copy)
  87. @@ -4,27 +4,31 @@
  88.  import os.path
  89.  import glob
  90.  
  91. -soundtouch_files = Split("""
  92. -AAFilter.cpp
  93. -FIFOSampleBuffer.cpp
  94. -FIRFilter.cpp
  95. -RateTransposer.cpp
  96. -SoundTouch.cpp
  97. -TDStretch.cpp
  98. -mmx_gcc.cpp
  99. -cpu_detect_x86_gcc.cpp
  100. -""")
  101. +Import('env install_prefix libraries')
  102.  
  103. -Import('env install_prefix')
  104. -st = env.Clone()
  105. -st.Append(CCFLAGS="-DHAVE_CONFIG_H -D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE")
  106. +if env['BUILD_RUBBERBAND']:
  107.  
  108. -libst = st.SharedLibrary('soundtouch', soundtouch_files)
  109. +    soundtouch_files = Split("""
  110. +    AAFilter.cpp
  111. +    FIFOSampleBuffer.cpp
  112. +    FIRFilter.cpp
  113. +    RateTransposer.cpp
  114. +    SoundTouch.cpp
  115. +    TDStretch.cpp
  116. +    mmx_gcc.cpp
  117. +    cpu_detect_x86_gcc.cpp
  118. +    """)
  119.  
  120. -Default(libst)
  121. +    Import('env install_prefix')
  122. +    st = env.Clone()
  123. +    st.Append(CCFLAGS="-DHAVE_CONFIG_H -D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE")
  124.  
  125. -env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour2'), libst))
  126. +    libst = st.SharedLibrary('soundtouch', soundtouch_files)
  127.  
  128. -env.Alias('tarball', env.Distribute (env['DISTTREE'],
  129. -   [ 'SConscript'] + soundtouch_files + glob.glob('*.h')))
  130. +    Default(libst)
  131.  
  132. +    env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour2'), libst))
  133. +
  134. +    env.Alias('tarball', env.Distribute (env['DISTTREE'],
  135. +       [ 'SConscript'] + soundtouch_files + glob.glob('*.h')))
  136. +
  137. Index: ardour/libs/rubberband/SConscript
  138. ===================================================================
  139. --- ardour/libs/rubberband/SConscript   (revision 10313)
  140. +++ ardour/libs/rubberband/SConscript   (working copy)
  141. @@ -4,30 +4,31 @@
  142.  import os.path
  143.  import glob
  144.  
  145. -rubberband_files = glob.glob ('src/*.cpp')
  146. -
  147.  Import('env install_prefix libraries')
  148. -rb = env.Clone()
  149.  
  150. -rb.Merge  ([libraries['fftw3f'],
  151. -       libraries['fftw3'],
  152. -            libraries['vamp'],
  153. -            libraries['samplerate'],
  154. -            libraries['sndfile']
  155. -            ])
  156. +if env['BUILD_RUBBERBAND']:
  157. +    rubberband_files = glob.glob ('src/*.cpp')
  158. +    rb = env.Clone()
  159.  
  160. -rb.Append (CPPATH='#libs/rubberband/rubberband', CXXFLAGS="-Ilibs/rubberband/rubberband")
  161. +    rb.Merge  ([libraries['fftw3f'],
  162. +       libraries['fftw3'],
  163. +       libraries['vamp'],
  164. +       libraries['samplerate'],
  165. +       libraries['sndfile']
  166. +       ])
  167.  
  168. -librb = rb.SharedLibrary('rubberband', rubberband_files)
  169. +    rb.Append (CPPATH='#libs/rubberband/rubberband', CXXFLAGS="-Ilibs/rubberband/rubberband")
  170.  
  171. -Default(librb)
  172. +    librb = rb.SharedLibrary('rubberband', rubberband_files)
  173.  
  174. -env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour2'), librb))
  175. +    Default(librb)
  176.  
  177. -env.Alias('tarball', env.Distribute (env['DISTTREE'],
  178. -                                     [ 'SConscript'] +
  179. -                                     rubberband_files +
  180. -                                     glob.glob('rubberband/*.h') +
  181. -                                     glob.glob('src/*.h')))
  182. +    env.Alias('install', env.Install(os.path.join(install_prefix, env['LIBDIR'], 'ardour2'), librb))
  183.  
  184. +    env.Alias('tarball', env.Distribute (env['DISTTREE'],
  185. +                    [ 'SConscript'] +
  186. +                    rubberband_files +
  187. +                    glob.glob('rubberband/*.h') +
  188. +                    glob.glob('src/*.h')))
  189.  
  190. +
  191. Index: ardour/SConstruct
  192. ===================================================================
  193. --- ardour/SConstruct   (revision 10313)
  194. +++ ardour/SConstruct   (working copy)
  195. @@ -899,35 +899,56 @@
  196.  # these are part of the Ardour source tree because they are C++
  197.  #
  198.  
  199. -libraries['vamp'] = LibraryInfo (LIBS='vampsdk',
  200. -                                 LIBPATH='#libs/vamp-sdk',
  201. -                                 CPPPATH='#libs/vamp-sdk')
  202. -libraries['vamphost'] = LibraryInfo (LIBS='vamphostsdk',
  203. -                                 LIBPATH='#libs/vamp-sdk',
  204. -                                 CPPPATH='#libs/vamp-sdk')
  205. +conf = env.Configure (custom_tests = { 'CheckPKGExists' : CheckPKGExists,
  206. +                                       'CheckPKGVersion' : CheckPKGVersion }
  207. +                      )
  208.  
  209. -env['RUBBERBAND'] = False
  210. +if env['SYSLIBS'] and conf.CheckPKGExists ('vamp'):
  211. +    env['BUILD_VAMP'] = False
  212. +    libraries['vamp'] = LibraryInfo()
  213. +    libraries['vamp'].ParseConfig('pkg-config --cflags --libs vamp-sdk')
  214. +    libraries['vamphost'] = LibraryInfo()
  215. +    libraries['vamphost'].ParseConfig('pkg-config --cflags --libs vamp-hostsdk')
  216.  
  217. -conf = Configure (env)
  218. +else:
  219. +    env['BUILD_VAMP'] = True
  220. +    libraries['vamp'] = LibraryInfo (LIBS='vamp-sdk',
  221. +                                     LIBPATH='#libs/vamp-sdk',
  222. +                                     CPPPATH='#libs/vamp-sdk')
  223. +    libraries['vamphost'] = LibraryInfo (LIBS='vamp-hostsdk',
  224. +                                     LIBPATH='#libs/vamp-sdk',
  225. +                                     CPPPATH='#libs/vamp-sdk')
  226.  
  227. -if conf.CheckHeader ('fftw3.h'):
  228. +if env['SYSLIBS'] and conf.CheckPKGExists ('rubberband'):
  229.      env['RUBBERBAND'] = True
  230. -    libraries['rubberband'] = LibraryInfo (LIBS='rubberband',
  231. -                                           LIBPATH='#libs/rubberband',
  232. -                                           CPPPATH='#libs/rubberband',
  233. -                                           CCFLAGS='-DUSE_RUBBERBAND')
  234. +    env['BUILD_RUBBERBAND'] = False
  235. +    libraries['rubberband'] = LibraryInfo()
  236. +    libraries['rubberband'].ParseConfig('pkg-config --cflags --libs rubberband')
  237. +    libraries['rubberband'].Append(CCFLAGS='-DUSE_RUBBERBAND')
  238. +
  239.  else:
  240. -    print ""
  241. -    print "-------------------------------------------------------------------------"
  242. -    print "You do not have the FFTW single-precision development package installed."
  243. -    print "This prevents Ardour from using the Rubberband library for timestretching"
  244. -    print "and pitchshifting. It will fall back on SoundTouch for timestretch, and "
  245. -    print "pitchshifting will not be available."
  246. -    print "-------------------------------------------------------------------------"
  247. -    print ""
  248. +    env['RUBBERBAND'] = False
  249.  
  250. -conf.Finish()
  251. +    if conf.CheckHeader ('fftw3.h'):
  252. +        env['RUBBERBAND'] = True
  253. +        env['BUILD_RUBBERBAND'] = True
  254. +        libraries['rubberband'] = LibraryInfo (LIBS='rubberband',
  255. +                                               LIBPATH='#libs/rubberband',
  256. +                                               CPPPATH='#libs/rubberband',
  257. +                                               CCFLAGS='-DUSE_RUBBERBAND')
  258.  
  259. +    else:
  260. +        print ""
  261. +        print "-------------------------------------------------------------------------"
  262. +        print "You do not have the FFTW single-precision development package installed."
  263. +        print "This prevents Ardour from using the Rubberband library for timestretching"
  264. +        print "and pitchshifting. It will fall back on SoundTouch for timestretch, and "
  265. +        print "pitchshifting will not be available."
  266. +        print "-------------------------------------------------------------------------"
  267. +        print ""
  268. +
  269. +env = conf.Finish()
  270. +
  271.  #
  272.  # Check for libusb
  273.  
  274. @@ -1109,6 +1130,7 @@
  275.  #    libraries['libglademm'].ParseConfig ('pkg-config --cflags --libs libglademm-2.4')
  276.  
  277.  #    libraries['flowcanvas'] = LibraryInfo(LIBS='flowcanvas', LIBPATH='#/libs/flowcanvas', CPPPATH='#libs/flowcanvas')
  278. +    env['BUILD_SOUNDTOUCH'] = False
  279.      libraries['soundtouch'] = LibraryInfo()
  280.      libraries['soundtouch'].ParseConfig ('pkg-config --cflags --libs soundtouch')
  281.      # Comment the previous line and uncomment this for old versions of Debian:
  282. @@ -1173,6 +1195,7 @@
  283.                                                  LIBPATH='#libs/libgnomecanvasmm',
  284.                                                  CPPPATH='#libs/libgnomecanvasmm')
  285.      
  286. +    env['BUILD_SOUNDTOUCH'] = True
  287.      libraries['soundtouch'] = LibraryInfo(LIBS='soundtouch',
  288.                                            LIBPATH='#libs/soundtouch',
  289.                                            CPPPATH=['#libs', '#libs/soundtouch'])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement