Add JNI target (not built by default)

This commit is contained in:
Chris Cannam
2014-05-03 13:28:58 +01:00
parent 24c9507170
commit 7966b86250
3 changed files with 33 additions and 5 deletions

View File

@@ -6,6 +6,10 @@ CXXFLAGS := -DHAVE_LIBSAMPLERATE -DHAVE_FFTW3 -DFFTW_DOUBLE_ONLY -DNO_THREAD_CHE
CFLAGS := @CFLAGS@ $(OPTFLAGS) CFLAGS := @CFLAGS@ $(OPTFLAGS)
LDFLAGS := @LDFLAGS@ -lpthread $(LDFLAGS) LDFLAGS := @LDFLAGS@ -lpthread $(LDFLAGS)
JNI_CXXFLAGS := -I$(JAVA_HOME)/include
JAVAC := $(JAVA_HOME)/bin/javac
JAR := $(JAVA_HOME)/bin/jar
LIBRARY_LIBS := @SRC_LIBS@ @FFTW_LIBS@ LIBRARY_LIBS := @SRC_LIBS@ @FFTW_LIBS@
PROGRAM_LIBS := @SNDFILE_LIBS@ $(LIBRARY_LIBS) PROGRAM_LIBS := @SNDFILE_LIBS@ $(LIBRARY_LIBS)
VAMP_PLUGIN_LIBS := @Vamp_LIBS@ $(LIBRARY_LIBS) VAMP_PLUGIN_LIBS := @Vamp_LIBS@ $(LIBRARY_LIBS)
@@ -23,6 +27,8 @@ INSTALL_LRDFDIR := $(PREFIX)/share/ladspa/rdf
INSTALL_PKGDIR := $(PREFIX)/lib/pkgconfig INSTALL_PKGDIR := $(PREFIX)/lib/pkgconfig
LIBNAME := librubberband LIBNAME := librubberband
JNINAME := librubberband-jni
JARNAME := rubberband.jar
DYNAMIC_EXTENSION := .so DYNAMIC_EXTENSION := .so
DYNAMIC_FULL_VERSION := 2.1.0 DYNAMIC_FULL_VERSION := 2.1.0
@@ -34,6 +40,8 @@ LADSPA_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,--version-script=ladspa/ladspa-plu
PROGRAM_TARGET := bin/rubberband PROGRAM_TARGET := bin/rubberband
STATIC_TARGET := lib/$(LIBNAME).a STATIC_TARGET := lib/$(LIBNAME).a
DYNAMIC_TARGET := lib/$(LIBNAME)$(DYNAMIC_EXTENSION) DYNAMIC_TARGET := lib/$(LIBNAME)$(DYNAMIC_EXTENSION)
JNI_TARGET := lib/$(JNINAME)$(DYNAMIC_EXTENSION)
JAR_TARGET := lib/$(JARNAME)
VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION) VAMP_TARGET := lib/vamp-rubberband$(DYNAMIC_EXTENSION)
LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION) LADSPA_TARGET := lib/ladspa-rubberband$(DYNAMIC_EXTENSION)
@@ -42,6 +50,7 @@ all: bin lib $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET)
static: $(STATIC_TARGET) static: $(STATIC_TARGET)
dynamic: $(DYNAMIC_TARGET) dynamic: $(DYNAMIC_TARGET)
library: $(STATIC_TARGET) $(DYNAMIC_TARGET) library: $(STATIC_TARGET) $(DYNAMIC_TARGET)
jni: $(JNI_TARGET) $(JAR_TARGET)
program: $(PROGRAM_TARGET) program: $(PROGRAM_TARGET)
vamp: $(VAMP_TARGET) vamp: $(VAMP_TARGET)
ladspa: $(LADSPA_TARGET) ladspa: $(LADSPA_TARGET)
@@ -96,6 +105,12 @@ LIBRARY_SOURCES := \
src/StretcherChannelData.cpp \ src/StretcherChannelData.cpp \
src/StretcherImpl.cpp src/StretcherImpl.cpp
JNI_SOURCE := \
src/jni/RubberBandStretcherJNI.cpp
JAVA_SOURCE := \
com/breakfastquay/rubberband/RubberBandStretcher.java
PROGRAM_SOURCES := \ PROGRAM_SOURCES := \
main/main.cpp main/main.cpp
@@ -115,7 +130,8 @@ LADSPA_SOURCES := \
LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o) LIBRARY_OBJECTS := $(LIBRARY_SOURCES:.cpp=.o)
LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o) LIBRARY_OBJECTS := $(LIBRARY_OBJECTS:.c=.o)
JNI_OBJECT := $(JNI_SOURCE:.cpp=.o)
JAVA_OBJECT := $(JAVA_SOURCE:.java=.class)
PROGRAM_OBJECTS := $(PROGRAM_SOURCES:.cpp=.o) PROGRAM_OBJECTS := $(PROGRAM_SOURCES:.cpp=.o)
VAMP_OBJECTS := $(VAMP_SOURCES:.cpp=.o) VAMP_OBJECTS := $(VAMP_SOURCES:.cpp=.o)
LADSPA_OBJECTS := $(LADSPA_SOURCES:.cpp=.o) LADSPA_OBJECTS := $(LADSPA_SOURCES:.cpp=.o)
@@ -129,6 +145,16 @@ $(STATIC_TARGET): $(LIBRARY_OBJECTS)
$(DYNAMIC_TARGET): $(LIBRARY_OBJECTS) $(DYNAMIC_TARGET): $(LIBRARY_OBJECTS)
$(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS) $(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS)
$(JNI_OBJECT): $(JNI_SOURCE)
$(CXX) -c $(JNI_CXXFLAGS) $(CXXFLAGS) $^ -o $@
$(JNI_TARGET): $(LIBRARY_OBJECTS) $(JNI_OBJECT)
$(CXX) $(DYNAMIC_LDFLAGS) $^ -o $@ $(LIBRARY_LIBS) $(LDFLAGS)
$(JAR_TARGET): $(JAVA_SOURCE)
$(JAVAC) $^
$(JAR) cvf $@ $(JAVA_OBJECT)
$(VAMP_TARGET): $(LIBRARY_OBJECTS) $(VAMP_OBJECTS) $(VAMP_TARGET): $(LIBRARY_OBJECTS) $(VAMP_OBJECTS)
$(CXX) $(VAMP_LDFLAGS) -o $@ $^ $(VAMP_PLUGIN_LIBS) $(LDFLAGS) $(CXX) $(VAMP_LDFLAGS) -o $@ $^ $(VAMP_PLUGIN_LIBS) $(LDFLAGS)
@@ -153,9 +179,11 @@ install: all
cp $(STATIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR) cp $(STATIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)
rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION) rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION)
rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION) rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION)
rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(JNINAME)$(DYNAMIC_EXTENSION)
cp $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) 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).$(DYNAMIC_ABI_VERSION)
ln -s $(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION) ln -s $(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION)
cp $(JNI_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(JNINAME)$(DYNAMIC_EXTENSION)
cp $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR) cp $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR)
cp vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR) cp vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR)
cp $(LADSPA_TARGET) $(DESTDIR)$(INSTALL_LADSPADIR) cp $(LADSPA_TARGET) $(DESTDIR)$(INSTALL_LADSPADIR)
@@ -165,10 +193,10 @@ install: all
> $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc > $(DESTDIR)$(INSTALL_PKGDIR)/rubberband.pc
clean: clean:
rm -f $(LIBRARY_OBJECTS) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS) rm -f $(LIBRARY_OBJECTS) $(JNI_OBJECT) $(JAVA_OBJECT) $(PROGRAM_OBJECTS) $(LADSPA_OBJECTS) $(VAMP_OBJECTS)
distclean: clean distclean: clean
rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET) rm -f $(PROGRAM_TARGET) $(STATIC_TARGET) $(DYNAMIC_TARGET) $(JNI_TARGET) $(JAR_TARGET) $(VAMP_TARGET) $(LADSPA_TARGET)
depend: depend:
makedepend -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES) makedepend -Y $(LIBRARY_SOURCES) $(PROGRAM_SOURCES)

View File

@@ -5,7 +5,7 @@ Rubber Band
An audio time-stretching and pitch-shifting library and utility program. An audio time-stretching and pitch-shifting library and utility program.
Written by Chris Cannam, chris.cannam@breakfastquay.com. Written by Chris Cannam, chris.cannam@breakfastquay.com.
Copyright 2007-2012 Particular Programs Ltd. Copyright 2007-2014 Particular Programs Ltd.
Rubber Band is a library and utility program that permits changing the Rubber Band is a library and utility program that permits changing the
tempo and pitch of an audio recording independently of one another. tempo and pitch of an audio recording independently of one another.

View File

@@ -103,7 +103,7 @@ public class RubberBandStretcher
public static final int PercussiveOptions = 0x00102000; public static final int PercussiveOptions = 0x00102000;
static { static {
System.loadLibrary("rubberband"); System.loadLibrary("rubberband-jni");
} }
}; };