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