Blame view
tools/extras/install_portaudio.sh
3.91 KB
8dcb6dfcb first commit |
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 |
#!/bin/bash #Copyright 2012 Cisco Systems; Matthias Paulik # #Licensed under the Apache License, Version 2.0 (the "License"); #you may not use this file except in compliance with the License. #You may obtain a copy of the License at # #http://www.apache.org/licenses/LICENSE-2.0 # #THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY #KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED #WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, #MERCHANTABLITY OR NON-INFRINGEMENT. #See the Apache 2 License for the specific language governing permissions and #limitations under the License. # #This script attempts to install port audio, which is needed for the run-on #decoding stuff. Portaudio enables the decoder to grab a live audio stream #from the soundcard. I tested portaudio on Linux (RedHat and Suse Linux) and #on MacOS 10.7. On Linux, it compiles out of the box. For MacOS 10.7, #it is necessary to edit the Makefile (this script tries to do that). #The script will remove all occurances of # # -Werror (occurs once in the Makefile) # -arch i386 (occurs twice in the Makefile) # -arch ppc (occurs twice in the Makefile) # -isysroot /Developer/SDKs/MacOSX10.4u.sdk # #also, it seems that one has to uncomment the inclusion of AudioToolbox in #include/pa_mac_core.h # #All this should make it compile fine for x86_64 under MacOS 10.7 #(always assuming that you installed XCode, wget and #the Linux environment stuff on MacOS) echo "****() Installing portaudio" if [ ! -e pa_stable_v19_20111121.tgz ]; then echo "Could not find portaudio tarball pa_stable_v19_20111121.tgz" echo "Trying to download it via wget!" if ! which wget >&/dev/null; then echo "This script requires you to first install wget" echo "You can also just download pa_stable_v19_20111121.tgz from" echo "http://www.portaudio.com/download.html)" exit 1; fi wget -T 10 -t 3 http://www.portaudio.com/archives/pa_stable_v19_20111121.tgz if [ ! -e pa_stable_v19_20111121.tgz ]; then echo "Download of pa_stable_v19_20111121.tgz - failed!" echo "Aborting script. Please download and install port audio manually!" exit 1; fi fi tar -xovzf pa_stable_v19_20111121.tgz || exit 1 read -d '' pa_patch << "EOF" --- portaudio/Makefile.in 2012-08-05 10:42:05.000000000 +0300 +++ portaudio/Makefile_mod.in 2012-08-05 10:41:54.000000000 +0300 @@ -193,6 +194,8 @@ for include in $(INCLUDES); do \\ $(INSTALL_DATA) -m 644 $(top_srcdir)/include/$$include $(DESTDIR)$(includedir)/$$include; \\ done + $(INSTALL_DATA) -m 644 $(top_srcdir)/src/common/pa_ringbuffer.h $(DESTDIR)$(includedir)/$$include; + $(INSTALL_DATA) -m 644 $(top_srcdir)/src/common/pa_memorybarrier.h $(DESTDIR)$(includedir)/$$include; $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig $(INSTALL) -m 644 portaudio-2.0.pc $(DESTDIR)$(libdir)/pkgconfig/portaudio-2.0.pc @echo "" EOF MACOS=`uname 2>/dev/null | grep Darwin` cd portaudio if [ -z "$MACOS" ]; then echo "Patching Makefile.in to include ring buffer functionality..." echo "${pa_patch}" | patch -p0 Makefile.in fi patch -p0 Makefile.in < ../extras/portaudio.patch autoconf ./configure --prefix=`pwd`/install --with-pic perl -i -pe 's:src/common/pa_ringbuffer.o:: if /^OTHER_OBJS\s*=/' Makefile if [ "$MACOS" != "" ]; then echo "detected MacOS operating system ... trying to fix Makefile" mv Makefile Makefile.bck cat Makefile.bck | sed -e 's/\-isysroot\ \/Developer\/SDKs\/MacOSX10\.4u\.sdk//g' \ -e 's/-Werror//g' -e 's/-arch i386//g' -e 's/-arch ppc64//g' -e 's/-arch ppc//g' \ > Makefile mv include/pa_mac_core.h include/pa_mac_core.h.bck cat include/pa_mac_core.h.bck \ | sed 's/\/\/\#include \<AudioToolbox\/AudioToolbox.h\>/#include \<AudioToolbox\/AudioToolbox.h\>/g' \ > include/pa_mac_core.h fi make make install if [ "$MACOS" != "" ]; then cp src/common/pa_ringbuffer.h install/include/ fi cd .. |