Build shared library on Android without SONAME versioning
authorMartin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Wed, 10 May 2017 11:08:13 +0000 (13:08 +0200)
committerGitHub <noreply@github.com>
Wed, 10 May 2017 11:08:13 +0000 (13:08 +0200)
Android does not support versioned SONAME entries, ref. #1173

exports/Makefile

index dad63e2..c053895 100644 (file)
@@ -122,6 +122,12 @@ ifeq ($(OSNAME), $(filter $(OSNAME),Linux SunOS Android))
 
 so : ../$(LIBSONAME)
 
+ifeq ($(OSNAME), Android)
+INTERNALNAME = $(LIBPREFIX).so
+else
+INTERNALNAME = $(LIBPREFIX).so.$(MAJOR_VERSION)
+endif
+
 ifeq (, $(SYMBOLPREFIX)$(SYMBOLSUFFIX))
 ../$(LIBSONAME) : ../$(LIBNAME) linktest.c
 else
@@ -132,13 +138,13 @@ endif
 ifneq ($(C_COMPILER), LSB)
        $(CC) $(CFLAGS) $(LDFLAGS) -shared -o ../$(LIBSONAME) \
        -Wl,--whole-archive $< -Wl,--no-whole-archive \
-       -Wl,-soname,$(LIBPREFIX).so.$(MAJOR_VERSION) $(EXTRALIB)
+       -Wl,-soname,$(INTERNALNAME) $(EXTRALIB)
        $(CC) $(CFLAGS) $(LDFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) $(FEXTRALIB) && echo OK.
 else
 #for LSB
        env LSBCC_SHAREDLIBS=gfortran $(CC) $(CFLAGS) $(LDFLAGS) -shared -o ../$(LIBSONAME) \
        -Wl,--whole-archive $< -Wl,--no-whole-archive \
-       -Wl,-soname,$(LIBPREFIX).so.$(MAJOR_VERSION) $(EXTRALIB)
+       -Wl,-soname,$(INTERNALNAME) $(EXTRALIB)
        $(FC) $(CFLAGS) $(LDFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) $(FEXTRALIB) && echo OK.
 endif
        rm -f linktest