Skip to content

Commit

Permalink
* Avoid versioning of FFTW and GSL libraries, preventing them from w…
Browse files Browse the repository at this point in the history
…orking on Android (issue #127)
  • Loading branch information
saudet committed Dec 19, 2015
1 parent 3803bbe commit f594e8d
Show file tree
Hide file tree
Showing 5 changed files with 150 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@

* Avoid versioning of FFTW and GSL libraries, preventing them from working on Android ([issue #127](https://github.com/bytedeco/javacpp-presets/issues/127))
* Upgrade presets for FFmpeg 2.8.3 and Caffe, including the latest versions of their dependencies
* Add presets for TensorFlow ([issue #111](https://github.com/bytedeco/javacpp-presets/issues/111))
* Virtualize `opencv_videostab.IFrameSource` to let us implement it in Java ([issue bytedeco/javacv#277](https://github.com/bytedeco/javacv/issues/277))
Expand Down
2 changes: 2 additions & 0 deletions fftw/cppbuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ fi

case $PLATFORM in
android-arm)
patch -Np1 < ../../../fftw-$FFTW_VERSION-android.patch
./configure --prefix=$INSTALL_PATH --enable-shared --enable-threads --with-combined-threads --host="arm-linux-androideabi" --with-sysroot="$ANDROID_ROOT" CC="$ANDROID_BIN-gcc" STRIP="$ANDROID_BIN-strip" CFLAGS="--sysroot=$ANDROID_ROOT -DANDROID -fPIC -ffunction-sections -funwind-tables -fstack-protector -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300" LDFLAGS="-nostdlib -Wl,--fix-cortex-a8" LIBS="-lgcc -ldl -lz -lm -lc"
make -j4
make install-strip
Expand All @@ -38,6 +39,7 @@ case $PLATFORM in
make install-strip
;;
android-x86)
patch -Np1 < ../../../fftw-$FFTW_VERSION-android.patch
./configure --prefix=$INSTALL_PATH --enable-shared --enable-threads --with-combined-threads --enable-sse2 --host="i686-linux-android" --with-sysroot="$ANDROID_ROOT" CC="$ANDROID_BIN-gcc" STRIP="$ANDROID_BIN-strip" CFLAGS="--sysroot=$ANDROID_ROOT -DANDROID -fPIC -ffunction-sections -funwind-tables -mssse3 -mfpmath=sse -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300" LDFLAGS="-nostdlib" LIBS="-lgcc -ldl -lz -lm -lc"
make -j4
make install-strip
Expand Down
99 changes: 99 additions & 0 deletions fftw/fftw-3.3.4-android.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
diff -ruN fftw-3.3.4/Makefile.am fftw-3.3.4-android/Makefile.am
--- fftw-3.3.4/Makefile.am 2013-03-18 21:10:45.000000000 +0900
+++ fftw-3.3.4-android/Makefile.am 2015-12-19 09:16:15.046742901 +0900
@@ -83,10 +83,9 @@

if QUAD
# cannot use -no-undefined since dependent on libquadmath
-libfftw3@PREC_SUFFIX@_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
+libfftw3@PREC_SUFFIX@_la_LDFLAGS = -avoid-version
else
-libfftw3@PREC_SUFFIX@_la_LDFLAGS = -no-undefined -version-info \
-@SHARED_VERSION_INFO@
+libfftw3@PREC_SUFFIX@_la_LDFLAGS = -no-undefined -avoid-version
endif

fftw3@PREC_SUFFIX@.pc: fftw.pc
diff -ruN fftw-3.3.4/Makefile.in fftw-3.3.4-android/Makefile.in
--- fftw-3.3.4/Makefile.in 2014-03-05 03:44:58.000000000 +0900
+++ fftw-3.3.4-android/Makefile.in 2015-12-19 09:16:28.481027072 +0900
@@ -480,12 +480,11 @@
$(SIMD_LIBS) $(SSE2_LIBS) $(AVX_LIBS) $(ALTIVEC_LIBS) $(NEON_LIBS) \
$(COMBINED_THREADLIBS)

-@QUAD_FALSE@libfftw3@PREC_SUFFIX@_la_LDFLAGS = -no-undefined -version-info \
-@QUAD_FALSE@@SHARED_VERSION_INFO@
+@QUAD_FALSE@libfftw3@PREC_SUFFIX@_la_LDFLAGS = -no-undefined -avoid-version


# cannot use -no-undefined since dependent on libquadmath
-@QUAD_TRUE@libfftw3@PREC_SUFFIX@_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
+@QUAD_TRUE@libfftw3@PREC_SUFFIX@_la_LDFLAGS = -avoid-version
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = fftw3@PREC_SUFFIX@.pc
WISDOM_DIR = /etc/fftw
diff -ruN fftw-3.3.4/mpi/Makefile.am fftw-3.3.4-android/mpi/Makefile.am
--- fftw-3.3.4/mpi/Makefile.am 2013-03-18 21:10:45.000000000 +0900
+++ fftw-3.3.4-android/mpi/Makefile.am 2015-12-19 09:16:54.092568824 +0900
@@ -23,7 +23,7 @@

libfftw3@PREC_SUFFIX@_mpi_la_SOURCES = $(SRC) $(TRANSPOSE_SRC) $(DFT_SRC) $(RDFT_SRC) $(RDFT2_SRC)

-libfftw3@PREC_SUFFIX@_mpi_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
+libfftw3@PREC_SUFFIX@_mpi_la_LDFLAGS = -avoid-version
libfftw3@PREC_SUFFIX@_mpi_la_LIBADD = ../libfftw3@PREC_SUFFIX@.la @MPILIBS@

if THREADS
diff -ruN fftw-3.3.4/mpi/Makefile.in fftw-3.3.4-android/mpi/Makefile.in
--- fftw-3.3.4/mpi/Makefile.in 2014-03-05 03:45:00.000000000 +0900
+++ fftw-3.3.4-android/mpi/Makefile.in 2015-12-19 09:17:03.299763581 +0900
@@ -396,7 +396,7 @@
RDFT2_SRC = rdft2-serial.c rdft2-rank-geq2.c rdft2-rank-geq2-transposed.c rdft2-problem.c rdft2-solve.c mpi-rdft2.h
SRC = any-true.c api.c block.c choose-radix.c conf.c dtensor.c fftw3-mpi.h ifftw-mpi.h rearrange.c wisdom-api.c f03-wrap.c
libfftw3@PREC_SUFFIX@_mpi_la_SOURCES = $(SRC) $(TRANSPOSE_SRC) $(DFT_SRC) $(RDFT_SRC) $(RDFT2_SRC)
-libfftw3@PREC_SUFFIX@_mpi_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
+libfftw3@PREC_SUFFIX@_mpi_la_LDFLAGS = -avoid-version
libfftw3@PREC_SUFFIX@_mpi_la_LIBADD = ../libfftw3@PREC_SUFFIX@.la @MPILIBS@
@OPENMP_TRUE@@THREADS_FALSE@mpi_bench_CFLAGS = $(OPENMP_CFLAGS)
@THREADS_TRUE@mpi_bench_CFLAGS = $(PTHREAD_CFLAGS)
diff -ruN fftw-3.3.4/threads/Makefile.am fftw-3.3.4-android/threads/Makefile.am
--- fftw-3.3.4/threads/Makefile.am 2013-03-18 21:10:45.000000000 +0900
+++ fftw-3.3.4-android/threads/Makefile.am 2015-12-19 09:17:15.410019745 +0900
@@ -25,7 +25,7 @@
threads.h dft-vrank-geq1.c ct.c rdft-vrank-geq1.c hc2hc.c \
vrank-geq1-rdft2.c f77api.c f77funcs.h
libfftw3@PREC_SUFFIX@_threads_la_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS)
-libfftw3@PREC_SUFFIX@_threads_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
+libfftw3@PREC_SUFFIX@_threads_la_LDFLAGS = -avoid-version
if !COMBINED_THREADS
libfftw3@PREC_SUFFIX@_threads_la_LIBADD = ../libfftw3@PREC_SUFFIX@.la
endif
@@ -34,7 +34,7 @@
threads.h dft-vrank-geq1.c ct.c rdft-vrank-geq1.c hc2hc.c \
vrank-geq1-rdft2.c f77api.c f77funcs.h
libfftw3@PREC_SUFFIX@_omp_la_CFLAGS = $(AM_CFLAGS) $(OPENMP_CFLAGS)
-libfftw3@PREC_SUFFIX@_omp_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
+libfftw3@PREC_SUFFIX@_omp_la_LDFLAGS = -avoid-version
if !COMBINED_THREADS
libfftw3@PREC_SUFFIX@_omp_la_LIBADD = ../libfftw3@PREC_SUFFIX@.la
endif
diff -ruN fftw-3.3.4/threads/Makefile.in fftw-3.3.4-android/threads/Makefile.in
--- fftw-3.3.4/threads/Makefile.in 2014-03-05 03:45:01.000000000 +0900
+++ fftw-3.3.4-android/threads/Makefile.in 2015-12-19 09:17:40.804556908 +0900
@@ -382,14 +382,14 @@
vrank-geq1-rdft2.c f77api.c f77funcs.h

libfftw3@PREC_SUFFIX@_threads_la_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS)
-libfftw3@PREC_SUFFIX@_threads_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
+libfftw3@PREC_SUFFIX@_threads_la_LDFLAGS = -avoid-version
@COMBINED_THREADS_FALSE@libfftw3@PREC_SUFFIX@_threads_la_LIBADD = ../libfftw3@PREC_SUFFIX@.la
libfftw3@PREC_SUFFIX@_omp_la_SOURCES = api.c conf.c openmp.c \
threads.h dft-vrank-geq1.c ct.c rdft-vrank-geq1.c hc2hc.c \
vrank-geq1-rdft2.c f77api.c f77funcs.h

libfftw3@PREC_SUFFIX@_omp_la_CFLAGS = $(AM_CFLAGS) $(OPENMP_CFLAGS)
-libfftw3@PREC_SUFFIX@_omp_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
+libfftw3@PREC_SUFFIX@_omp_la_LDFLAGS = -avoid-version
@COMBINED_THREADS_FALSE@libfftw3@PREC_SUFFIX@_omp_la_LIBADD = ../libfftw3@PREC_SUFFIX@.la
all: all-am

2 changes: 2 additions & 0 deletions gsl/cppbuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,13 @@ cd gsl-$GSL_VERSION

case $PLATFORM in
android-arm)
patch -Np1 < ../../../gsl-$GSL_VERSION-android.patch
./configure --prefix=$INSTALL_PATH --host="arm-linux-androideabi" --with-sysroot="$ANDROID_ROOT" CC="$ANDROID_BIN-gcc" STRIP="$ANDROID_BIN-strip" CFLAGS="--sysroot=$ANDROID_ROOT -DANDROID -fPIC -ffunction-sections -funwind-tables -fstack-protector -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300" LDFLAGS="-nostdlib -Wl,--fix-cortex-a8" LIBS="-lgcc -ldl -lz -lm -lc"
make -j4
make install-strip
;;
android-x86)
patch -Np1 < ../../../gsl-$GSL_VERSION-android.patch
./configure --prefix=$INSTALL_PATH --host="i686-linux-android" --with-sysroot="$ANDROID_ROOT" CC="$ANDROID_BIN-gcc" STRIP="$ANDROID_BIN-strip" CFLAGS="--sysroot=$ANDROID_ROOT -DANDROID -fPIC -ffunction-sections -funwind-tables -mssse3 -mfpmath=sse -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300" LDFLAGS="-nostdlib" LIBS="-lgcc -ldl -lz -lm -lc"
make -j4
make install-strip
Expand Down
46 changes: 46 additions & 0 deletions gsl/gsl-1.16-android.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
diff -ruN gsl-1.16/cblas/Makefile.am gsl-1.16-android/cblas/Makefile.am
--- gsl-1.16/cblas/Makefile.am 2013-07-18 05:04:26.000000000 +0900
+++ gsl-1.16-android/cblas/Makefile.am 2015-12-19 09:21:42.742674545 +0900
@@ -1,5 +1,5 @@
lib_LTLIBRARIES = libgslcblas.la
-libgslcblas_la_LDFLAGS = -version-info $(GSL_LT_CBLAS_VERSION)
+libgslcblas_la_LDFLAGS = -avoid-version

MINGW32_HOST = @MINGW32_HOST@
if MINGW32_HOST
diff -ruN gsl-1.16/cblas/Makefile.in gsl-1.16-android/cblas/Makefile.in
--- gsl-1.16/cblas/Makefile.in 2013-07-20 00:14:52.000000000 +0900
+++ gsl-1.16-android/cblas/Makefile.in 2015-12-19 09:21:52.121872940 +0900
@@ -554,7 +554,7 @@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
lib_LTLIBRARIES = libgslcblas.la
-libgslcblas_la_LDFLAGS = -version-info $(GSL_LT_CBLAS_VERSION) \
+libgslcblas_la_LDFLAGS = -avoid-version \
$(am__append_1)
MINGW32_HOST = @MINGW32_HOST@
pkginclude_HEADERS = gsl_cblas.h
diff -ruN gsl-1.16/Makefile.am gsl-1.16-android/Makefile.am
--- gsl-1.16/Makefile.am 2013-07-18 05:04:26.000000000 +0900
+++ gsl-1.16-android/Makefile.am 2015-12-19 09:20:47.456505095 +0900
@@ -20,7 +20,7 @@
lib_LTLIBRARIES = libgsl.la
libgsl_la_SOURCES = version.c
libgsl_la_LIBADD = $(SUBLIBS)
-libgsl_la_LDFLAGS = -version-info $(GSL_LT_VERSION)
+libgsl_la_LDFLAGS = -avoid-version
noinst_HEADERS = templates_on.h templates_off.h build.h

MINGW32_HOST = @MINGW32_HOST@
diff -ruN gsl-1.16/Makefile.in gsl-1.16-android/Makefile.in
--- gsl-1.16/Makefile.in 2013-07-20 00:14:52.000000000 +0900
+++ gsl-1.16-android/Makefile.in 2015-12-19 09:21:31.174429846 +0900
@@ -625,7 +625,7 @@
lib_LTLIBRARIES = libgsl.la
libgsl_la_SOURCES = version.c
libgsl_la_LIBADD = $(SUBLIBS) $(am__append_1)
-libgsl_la_LDFLAGS = -version-info $(GSL_LT_VERSION) $(am__append_2)
+libgsl_la_LDFLAGS = -avoid-version $(am__append_2)
noinst_HEADERS = templates_on.h templates_off.h build.h
MINGW32_HOST = @MINGW32_HOST@
m4datadir = $(datadir)/aclocal

0 comments on commit f594e8d

Please sign in to comment.