Add JNI target (not built by default)
This commit is contained in:
34
Makefile.in
34
Makefile.in
@@ -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)
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user