Skip to content

Instantly share code, notes, and snippets.

@ryandesign
Created December 10, 2013 18:57
Show Gist options
  • Save ryandesign/7896071 to your computer and use it in GitHub Desktop.
Save ryandesign/7896071 to your computer and use it in GitHub Desktop.
Patch rubberband 1.8.1 Makefiles to fix OS X build issues and reduce unnecessary differences between the two Makefiles; see https://bitbucket.org/breakfastquay/rubberband/issue/3/makefileosx-doesnt-have-an-install-target
--- Makefile.in.orig 2012-10-28 05:30:09.000000000 -0500
+++ Makefile.in 2013-12-10 12:36:34.000000000 -0600
@@ -1,6 +1,8 @@
+PREFIX := @prefix@
CXX := @CXX@
-CXXFLAGS := -DHAVE_LIBSAMPLERATE -DHAVE_FFTW3 -DFFTW_DOUBLE_ONLY -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DNDEBUG @CXXFLAGS@ @SRC_CFLAGS@ @SNDFILE_CFLAGS@ @FFTW_CFLAGS@ @Vamp_CFLAGS@ -Irubberband -I. -Isrc $(OPTFLAGS)
+CC := @CC@
+CXXFLAGS := -DHAVE_LIBSAMPLERATE -DHAVE_FFTW3 -DFFTW_DOUBLE_ONLY -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DNDEBUG -Irubberband -I. -Isrc @CXXFLAGS@ @SRC_CFLAGS@ @SNDFILE_CFLAGS@ @FFTW_CFLAGS@ @Vamp_CFLAGS@ $(OPTFLAGS)
CFLAGS := @CFLAGS@ $(OPTFLAGS)
LDFLAGS := @LDFLAGS@ -lpthread $(LDFLAGS)
@@ -12,28 +14,29 @@
MKDIR := mkdir
AR := ar
+INSTALL_BINDIR := $(PREFIX)/bin
+INSTALL_INCDIR := $(PREFIX)/include/rubberband
+INSTALL_LIBDIR := $(PREFIX)/lib
+INSTALL_VAMPDIR := $(PREFIX)/lib/vamp
+INSTALL_LADSPADIR := $(PREFIX)/lib/ladspa
+INSTALL_LRDFDIR := $(PREFIX)/share/ladspa/rdf
+INSTALL_PKGDIR := $(PREFIX)/lib/pkgconfig
+
+LIBNAME := librubberband
+
DYNAMIC_EXTENSION := .so
-DYNAMIC_FULL_VERSION := .2.1.0
-DYNAMIC_ABI_VERSION := .2
-DYNAMIC_LIBNAME := librubberband$(DYNAMIC_EXTENSION)
-DYNAMIC_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,-soname=$(DYNAMIC_LIBNAME)$(DYNAMIC_ABI_VERSION)
+DYNAMIC_FULL_VERSION := 2.1.0
+DYNAMIC_ABI_VERSION := 2
+DYNAMIC_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,-soname=$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION)
VAMP_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,--version-script=vamp/vamp-plugin.map
LADSPA_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,--version-script=ladspa/ladspa-plugin.map
PROGRAM_TARGET := bin/rubberband
-STATIC_TARGET := lib/librubberband.a
-DYNAMIC_TARGET := lib/$(DYNAMIC_LIBNAME)
+STATIC_TARGET := lib/$(LIBNAME).a
+DYNAMIC_TARGET := lib/$(LIBNAME)$(DYNAMIC_EXTENSION)
VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION)
LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION)
-INSTALL_BINDIR := @prefix@/bin
-INSTALL_INCDIR := @prefix@/include/rubberband
-INSTALL_LIBDIR := @prefix@/lib
-INSTALL_VAMPDIR := @prefix@/lib/vamp
-INSTALL_LADSPADIR := @prefix@/lib/ladspa
-INSTALL_LRDFDIR := @prefix@/share/ladspa/rdf
-INSTALL_PKGDIR := @prefix@/lib/pkgconfig
-
all: bin lib $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
static: $(STATIC_TARGET)
@@ -148,17 +151,17 @@
cp $(PROGRAM_TARGET) $(DESTDIR)$(INSTALL_BINDIR)
cp $(PUBLIC_INCLUDES) $(DESTDIR)$(INSTALL_INCDIR)
cp $(STATIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)
- rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(DYNAMIC_LIBNAME)$(DYNAMIC_ABI_VERSION)
- rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(DYNAMIC_LIBNAME)
- cp $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(DYNAMIC_LIBNAME)$(DYNAMIC_FULL_VERSION)
- test -n "$(DYNAMIC_FULL_VERSION)" && ln -s $(DYNAMIC_LIBNAME)$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(DYNAMIC_LIBNAME)$(DYNAMIC_ABI_VERSION)
- test -n "$(DYNAMIC_FULL_VERSION)" && ln -s $(DYNAMIC_LIBNAME)$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(DYNAMIC_LIBNAME)
+ rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION)
+ rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION)
+ cp $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION)
+ ln -s $(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION)
+ ln -s $(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION)
cp $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR)
cp vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR)
cp $(LADSPA_TARGET) $(DESTDIR)$(INSTALL_LADSPADIR)
cp ladspa/ladspa-rubberband.cat $(DESTDIR)$(INSTALL_LADSPADIR)
cp ladspa/ladspa-rubberband.rdf $(DESTDIR)$(INSTALL_LRDFDIR)
- sed "s,%PREFIX%,@prefix@," rubberband.pc.in \
+ sed "s,%PREFIX%,$(PREFIX)," rubberband.pc.in \
> $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc
clean:
--- Makefile.osx.orig 2012-10-28 05:30:09.000000000 -0500
+++ Makefile.osx 2013-12-10 12:50:04.000000000 -0600
@@ -1,35 +1,45 @@
+PREFIX := /usr/local
CXX := g++
CC := gcc
ARCHFLAGS :=
OPTFLAGS := -DNDEBUG -ffast-math -mfpmath=sse -msse -msse2 -O3 -ftree-vectorize
-
-CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I/usr/local/include -DUSE_PTHREADS -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DNO_THREAD_CHECKS -DNO_TIMING -Irubberband -I. -Isrc
-
-LIBRARY_LIBS := -framework Accelerate
-
+CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -Irubberband -I. -Isrc -I$(PREFIX)/include -DUSE_PTHREADS -DMALLOC_IS_ALIGNED -DHAVE_VDSP -DUSE_SPEEX -DNO_THREAD_CHECKS -DNO_TIMING
CFLAGS := $(ARCHFLAGS) $(OPTFLAGS)
LDFLAGS := $(ARCHFLAGS) -lpthread $(LDFLAGS)
-PROGRAM_LIBS := -L/usr/local/lib -lsndfile $(LIBRARY_LIBS)
-VAMP_PLUGIN_LIBS := -L/usr/local/lib -lvamp-sdk $(LIBRARY_LIBS)
+LIBRARY_LIBS := -framework Accelerate
+PROGRAM_LIBS := -L$(PREFIX)/lib -lsndfile $(LIBRARY_LIBS)
+VAMP_PLUGIN_LIBS := -L$(PREFIX)/lib -lvamp-sdk $(LIBRARY_LIBS)
LADSPA_PLUGIN_LIBS := $(LIBRARY_LIBS)
MKDIR := mkdir
AR := ar
-DYNAMIC_LDFLAGS := -dynamiclib
+INSTALL_BINDIR := $(PREFIX)/bin
+INSTALL_INCDIR := $(PREFIX)/include/rubberband
+INSTALL_LIBDIR := $(PREFIX)/lib
+INSTALL_VAMPDIR := $(PREFIX)/lib/vamp
+INSTALL_LADSPADIR := $(PREFIX)/lib/ladspa
+INSTALL_LRDFDIR := $(PREFIX)/share/ladspa/rdf
+INSTALL_PKGDIR := $(PREFIX)/lib/pkgconfig
+
+LIBNAME := librubberband
+
DYNAMIC_EXTENSION := .dylib
+DYNAMIC_FULL_VERSION := 2.1.0
+DYNAMIC_ABI_VERSION := 2
+DYNAMIC_LDFLAGS := -dynamiclib -install_name $(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION) -current_version $(DYNAMIC_FULL_VERSION) -compatibility_version $(DYNAMIC_ABI_VERSION)
PROGRAM_TARGET := bin/rubberband
-STATIC_TARGET := lib/librubberband.a
-DYNAMIC_TARGET := lib/librubberband$(DYNAMIC_EXTENSION)
+STATIC_TARGET := lib/$(LIBNAME).a
+DYNAMIC_TARGET := lib/$(LIBNAME)$(DYNAMIC_EXTENSION)
VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION)
LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION)
-default: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET)
+default: bin lib $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET)
-all: bin lib $(STATIC_TARGET) $(DYNAMIC_TARGET) $(PROGRAM_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
+all: bin lib $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
static: $(STATIC_TARGET)
dynamic: $(DYNAMIC_TARGET)
@@ -121,10 +131,10 @@
LADSPA_OBJECTS := $(LADSPA_SOURCES:.cpp=.o)
$(PROGRAM_TARGET): $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS)
- $(CXX) -o $@ $^ $(PROGRAM_LIBS) $(PROGRAM_LIBS) $(LDFLAGS)
+ $(CXX) -o $@ $^ $(PROGRAM_LIBS) $(LDFLAGS)
$(STATIC_TARGET): $(LIBRARY_OBJECTS)
- $(AR) rc $@ $^
+ $(AR) rsc $@ $^
$(DYNAMIC_TARGET): $(LIBRARY_OBJECTS)
$(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS)
@@ -140,6 +150,30 @@
lib:
$(MKDIR) $@
+install: default
+ $(MKDIR) -p $(DESTDIR)$(INSTALL_BINDIR)
+ $(MKDIR) -p $(DESTDIR)$(INSTALL_INCDIR)
+ $(MKDIR) -p $(DESTDIR)$(INSTALL_LIBDIR)
+ $(MKDIR) -p $(DESTDIR)$(INSTALL_VAMPDIR)
+ $(MKDIR) -p $(DESTDIR)$(INSTALL_LADSPADIR)
+ $(MKDIR) -p $(DESTDIR)$(INSTALL_LRDFDIR)
+ $(MKDIR) -p $(DESTDIR)$(INSTALL_PKGDIR)
+ cp $(PROGRAM_TARGET) $(DESTDIR)$(INSTALL_BINDIR)
+ cp $(PUBLIC_INCLUDES) $(DESTDIR)$(INSTALL_INCDIR)
+ cp $(STATIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)
+ rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION)
+ rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION)
+ cp $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION)
+ ln -s $(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME).$(DYNAMIC_ABI_VERSION)$(DYNAMIC_EXTENSION)
+ ln -s $(LIBNAME).$(DYNAMIC_FULL_VERSION)$(DYNAMIC_EXTENSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION)
+# cp $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR)
+# cp vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR)
+# cp $(LADSPA_TARGET) $(DESTDIR)$(INSTALL_LADSPADIR)
+# cp ladspa/ladspa-rubberband.cat $(DESTDIR)$(INSTALL_LADSPADIR)
+# cp ladspa/ladspa-rubberband.rdf $(DESTDIR)$(INSTALL_LRDFDIR)
+ sed "s,%PREFIX%,$(PREFIX)," rubberband.pc.in \
+ > $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc
+
clean:
rm -f $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment