Blob Blame History Raw
From a26bde9414c3a9247b80c71c91225cc2ff0c0c2f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ralf=20Cors=C3=A9pius?= <corsepiu@fedoraproject.org>
Date: Sun, 3 Aug 2014 03:43:38 +0200
Subject: [PATCH 2/3] grass-shlib-soname

---
 include/Make/Grass.make.in       | 138 +++++++++++++++++++--------------------
 include/Make/Shlib.make          |  11 +++-
 raster/r.li/r.li.daemon/Makefile |   2 +-
 3 files changed, 78 insertions(+), 73 deletions(-)

diff --git a/include/Make/Grass.make.in b/include/Make/Grass.make.in
index 4693bfb..d10fe30 100644
--- a/include/Make/Grass.make.in
+++ b/include/Make/Grass.make.in
@@ -93,102 +93,102 @@ endif
 
 ##################### library names #####################################
 
-ARRAYSTATS_LIBNAME    = grass_arraystats.$(GRASS_VERSION_NUMBER)
-BITMAP_LIBNAME        = grass_bitmap.$(GRASS_VERSION_NUMBER)
-BTREE_LIBNAME         = grass_btree.$(GRASS_VERSION_NUMBER)
-CLUSTER_LIBNAME       = grass_cluster.$(GRASS_VERSION_NUMBER)
-COORCNV_LIBNAME       = grass_coorcnv.$(GRASS_VERSION_NUMBER)
-DATETIME_LIBNAME      = grass_datetime.$(GRASS_VERSION_NUMBER)
-DBDIALOG_LIBNAME      = grass_dbdialog.$(GRASS_VERSION_NUMBER)
-DISPLAY_LIBNAME       = grass_display.$(GRASS_VERSION_NUMBER)
-DLG_LIBNAME           = grass_dlg.$(GRASS_VERSION_NUMBER)
-DSPF_LIBNAME          = grass_dspf.$(GRASS_VERSION_NUMBER)
-DRIVER_LIBNAME        = grass_driver.$(GRASS_VERSION_NUMBER)
-PNGDRIVER_LIBNAME     = grass_pngdriver.$(GRASS_VERSION_NUMBER)
-PSDRIVER_LIBNAME      = grass_psdriver.$(GRASS_VERSION_NUMBER)
-CAIRODRIVER_LIBNAME   = grass_cairodriver.$(GRASS_VERSION_NUMBER)
-EDIT_LIBNAME          = grass_edit.$(GRASS_VERSION_NUMBER)
-G3D_LIBNAME	      = grass_g3d.$(GRASS_VERSION_NUMBER)
-GIS_LIBNAME	      = grass_gis.$(GRASS_VERSION_NUMBER)
-GMATH_LIBNAME         = grass_gmath.$(GRASS_VERSION_NUMBER)
-GPDE_LIBNAME          = grass_gpde.$(GRASS_VERSION_NUMBER)
-GPROJ_LIBNAME         = grass_gproj.$(GRASS_VERSION_NUMBER)
-IBTREE_LIBNAME        = grass_ibtree.$(GRASS_VERSION_NUMBER)
-ICON_LIBNAME          = grass_icon.$(GRASS_VERSION_NUMBER)
-IMAGERY_LIBNAME       = grass_I.$(GRASS_VERSION_NUMBER)
-IORTHO_LIBNAME        = grass_Iortho.$(GRASS_VERSION_NUMBER)
-IOSTREAM_LIBNAME      = grass_iostream.$(GRASS_VERSION_NUMBER)
-ISMAP_LIBNAME         = grass_ismap.$(GRASS_VERSION_NUMBER)
-LINKM_LIBNAME         = grass_linkm.$(GRASS_VERSION_NUMBER)
-LOCK_LIBNAME          = grass_locky.$(GRASS_VERSION_NUMBER)
-MANAGE_LIBNAME        = grass_manage.$(GRASS_VERSION_NUMBER)
-RASTER_LIBNAME        = grass_raster.$(GRASS_VERSION_NUMBER)
-ROWIO_LIBNAME         = grass_rowio.$(GRASS_VERSION_NUMBER)
-SEGMENT_LIBNAME       = grass_segment.$(GRASS_VERSION_NUMBER)
-STATS_LIBNAME	      = grass_stats.$(GRASS_VERSION_NUMBER)
-VASK_LIBNAME	      = grass_vask.$(GRASS_VERSION_NUMBER)
-XGD_LIBNAME	      = grass_Xgd.$(GRASS_VERSION_NUMBER)
-XGI_LIBNAME	      = grass_Xgi.$(GRASS_VERSION_NUMBER)
-XPM_LIBNAME	      = grass_Xpm.$(GRASS_VERSION_NUMBER)
+ARRAYSTATS_LIBNAME    = grass_arraystats
+BITMAP_LIBNAME        = grass_bitmap
+BTREE_LIBNAME         = grass_btree
+CLUSTER_LIBNAME       = grass_cluster
+COORCNV_LIBNAME       = grass_coorcnv
+DATETIME_LIBNAME      = grass_datetime
+DBDIALOG_LIBNAME      = grass_dbdialog
+DISPLAY_LIBNAME       = grass_display
+DLG_LIBNAME           = grass_dlg
+DSPF_LIBNAME          = grass_dspf
+DRIVER_LIBNAME        = grass_driver
+PNGDRIVER_LIBNAME     = grass_pngdriver
+PSDRIVER_LIBNAME      = grass_psdriver
+CAIRODRIVER_LIBNAME   = grass_cairodriver
+EDIT_LIBNAME          = grass_edit
+G3D_LIBNAME	      = grass_g3d
+GIS_LIBNAME	      = grass_gis
+GMATH_LIBNAME         = grass_gmath
+GPDE_LIBNAME          = grass_gpde
+GPROJ_LIBNAME         = grass_gproj
+IBTREE_LIBNAME        = grass_ibtree
+ICON_LIBNAME          = grass_icon
+IMAGERY_LIBNAME       = grass_I
+IORTHO_LIBNAME        = grass_Iortho
+IOSTREAM_LIBNAME      = grass_iostream
+ISMAP_LIBNAME         = grass_ismap
+LINKM_LIBNAME         = grass_linkm
+LOCK_LIBNAME          = grass_locky
+MANAGE_LIBNAME        = grass_manage
+RASTER_LIBNAME        = grass_raster
+ROWIO_LIBNAME         = grass_rowio
+SEGMENT_LIBNAME       = grass_segment
+STATS_LIBNAME	      = grass_stats
+VASK_LIBNAME	      = grass_vask
+XGD_LIBNAME	      = grass_Xgd
+XGI_LIBNAME	      = grass_Xgi
+XPM_LIBNAME	      = grass_Xpm
 
 # Vector
-DIG_LIBNAME           = grass_dig.$(GRASS_VERSION_NUMBER)
-DIG2_LIBNAME          = grass_dig2.$(GRASS_VERSION_NUMBER)
-VECTR_LIBNAME         = grass_vect.$(GRASS_VERSION_NUMBER)
-TRANS_LIBNAME         = grass_trans.$(GRASS_VERSION_NUMBER)
+DIG_LIBNAME           = grass_dig
+DIG2_LIBNAME          = grass_dig2
+VECTR_LIBNAME         = grass_vect
+TRANS_LIBNAME         = grass_trans
 
-SHAPE_LIBNAME         = grass_shape.$(GRASS_VERSION_NUMBER)
-GRAPH_LIBNAME         = grass_dgl.$(GRASS_VERSION_NUMBER)
-RTREE_LIBNAME         = grass_rtree.$(GRASS_VERSION_NUMBER)
+SHAPE_LIBNAME         = grass_shape
+GRAPH_LIBNAME         = grass_dgl
+RTREE_LIBNAME         = grass_rtree
 
-VEDIT_LIBNAME         = grass_vedit.$(GRASS_VERSION_NUMBER)
-NETA_LIBNAME          = grass_neta.$(GRASS_VERSION_NUMBER)
+VEDIT_LIBNAME         = grass_vedit
+NETA_LIBNAME          = grass_neta
 
 # Interpolation
-INTERPDATA_LIBNAME    = grass_interpdata.$(GRASS_VERSION_NUMBER)
-INTERPFL_LIBNAME      = grass_interpfl.$(GRASS_VERSION_NUMBER)
-QTREE_LIBNAME         = grass_qtree.$(GRASS_VERSION_NUMBER)
+INTERPDATA_LIBNAME    = grass_interpdata
+INTERPFL_LIBNAME      = grass_interpfl
+QTREE_LIBNAME         = grass_qtree
 
 # NVIZ related
-OGSF_LIBNAME          = grass_ogsf.$(GRASS_VERSION_NUMBER)
-NVIZ_LIBNAME          = grass_nviz.$(GRASS_VERSION_NUMBER)
+OGSF_LIBNAME          = grass_ogsf
+NVIZ_LIBNAME          = grass_nviz
 
 # triangulation libraries
-SOS_LIBNAME           = grass_sos.$(GRASS_VERSION_NUMBER)
-LIA_LIBNAME           = grass_lia.$(GRASS_VERSION_NUMBER)
-OPTRI_LIBNAME         = grass_optri.$(GRASS_VERSION_NUMBER)
-BASIC_LIBNAME         = grass_basic.$(GRASS_VERSION_NUMBER)
+SOS_LIBNAME           = grass_sos
+LIA_LIBNAME           = grass_lia
+OPTRI_LIBNAME         = grass_optri
+BASIC_LIBNAME         = grass_basic
 
-XDISPLAY_LIBNAME      = grass_Xdisplay.$(GRASS_VERSION_NUMBER)
+XDISPLAY_LIBNAME      = grass_Xdisplay
 
 # DBMI
-DBMI_LIBNAME          = grass_dbmi.$(GRASS_VERSION_NUMBER)
-DBMIBASE_LIBNAME      = grass_dbmibase.$(GRASS_VERSION_NUMBER)
-DBMICLIENT_LIBNAME    = grass_dbmiclient.$(GRASS_VERSION_NUMBER)
-DBMIDRIVER_LIBNAME    = grass_dbmidriver.$(GRASS_VERSION_NUMBER)
-SQLP_LIBNAME          = grass_sqlp.$(GRASS_VERSION_NUMBER)
-DBSTUBS_LIBNAME       = grass_dbstubs.$(GRASS_VERSION_NUMBER)
+DBMI_LIBNAME          = grass_dbmi
+DBMIBASE_LIBNAME      = grass_dbmibase
+DBMICLIENT_LIBNAME    = grass_dbmiclient
+DBMIDRIVER_LIBNAME    = grass_dbmidriver
+SQLP_LIBNAME          = grass_sqlp
+DBSTUBS_LIBNAME       = grass_dbstubs
 
 # database forms
-FORM_LIBNAME          = grass_form.$(GRASS_VERSION_NUMBER)
+FORM_LIBNAME          = grass_form
 
 # Symbols (icons, patterns)
-SYMB_LIBNAME          = grass_symb.$(GRASS_VERSION_NUMBER)
+SYMB_LIBNAME          = grass_symb
 
 # Normality
-CDHC_LIBNAME          = grass_cdhc.$(GRASS_VERSION_NUMBER)
+CDHC_LIBNAME          = grass_cdhc
 
 # Lidar
-LIDAR_LIBNAME         = grass_lidar.$(GRASS_VERSION_NUMBER)
+LIDAR_LIBNAME         = grass_lidar
 
 # Raster/SIMWE
-SIM_LIBNAME           = grass_sim.$(GRASS_VERSION_NUMBER)
+SIM_LIBNAME           = grass_sim
 
 # Sites (legacy)
-SITES_LIBNAME         = grass_sites.$(GRASS_VERSION_NUMBER)
+SITES_LIBNAME         = grass_sites
 
 # LRS
-LRS_LIBNAME           = grass_lrs.$(GRASS_VERSION_NUMBER)
+LRS_LIBNAME           = grass_lrs
 
 ##################### library switches ##################################
 
diff --git a/include/Make/Shlib.make b/include/Make/Shlib.make
index 73076e7..2f63404 100644
--- a/include/Make/Shlib.make
+++ b/include/Make/Shlib.make
@@ -1,6 +1,8 @@
 # common dependencies and rules for building shared libraries
 
-SHLIB = $(ARCH_LIBDIR)/$(SHLIB_PREFIX)$(SHLIB_NAME)$(SHLIB_SUFFIX)
+SHLIB = $(ARCH_LIBDIR)/$(SHLIB_PREFIX)$(SHLIB_NAME)$(SHLIB_SUFFIX).$(GRASS_VERSION_NUMBER)
+GRASS_MAJOR=6
+GRASS_MINOR=4
 
 # Object that calls _setfmode(_O_BINARY) which must be linked to each DLL on Windows
 ifdef MINGW
@@ -15,9 +17,12 @@ CFLAGS += $(SHLIB_CFLAGS) $(NLS_CFLAGS)
 LDFLAGS += $(SHLIB_LDFLAGS)
 
 $(SHLIB): $(SHLIB_OBJS)
-	$(SHLIB_LD) -o $@ $(LDFLAGS) $^ $(EXTRA_LIBS) $(DLLMAIN_OBJ)
 ifndef MINGW
-	(cd $(ARCH_LIBDIR); ln -f -s $(notdir $@) $(patsubst %.$(GRASS_VERSION_NUMBER)$(SHLIB_SUFFIX),%$(SHLIB_SUFFIX),$@))
+	$(SHLIB_LD) -o $@ -Wl,-soname,lib$(SHLIB_NAME)$(SHLIB_SUFFIX).$(GRASS_MAJOR).$(GRASS_MINOR) $(LDFLAGS) $^ $(EXTRA_LIBS) $(DLLMAIN_OBJ) && \
+		ln -f -s $(notdir $@) $(patsubst %$(SHLIB_SUFFIX).$(GRASS_VERSION_NUMBER),%$(SHLIB_SUFFIX),$@); \
+		ln -f -s $(notdir $@) $(patsubst %$(SHLIB_SUFFIX).$(GRASS_VERSION_NUMBER),%$(SHLIB_SUFFIX).$(GRASS_MAJOR).$(GRASS_MINOR),$@);
+else
+	$(SHLIB_LD) -o $@ -Wl,-soname,lib$(SHLIB_NAME)$(SHLIB_SUFFIX).$(GRASS_MAJOR).$(GRASS_MINOR) $(LDFLAGS) $^ $(EXTRA_LIBS) $(DLLMAIN_OBJ)
 endif
 
 shlib: $(SHLIB)
diff --git a/raster/r.li/r.li.daemon/Makefile b/raster/r.li/r.li.daemon/Makefile
index 6b2bd75..ba4b831 100644
--- a/raster/r.li/r.li.daemon/Makefile
+++ b/raster/r.li/r.li.daemon/Makefile
@@ -2,7 +2,7 @@ MODULE_TOPDIR = ../../..
 
 EXTRA_LIBS=$(GISLIB) $(MATHLIB)
 
-LIB_NAME = grass_rli.$(GRASS_VERSION_NUMBER)
+LIB_NAME = grass_rli
 
 LIB_OBJS = daemon.o list.o worker.o GenericCell.o avl.o avlID.o
 
-- 
1.9.3