From fb8e66dcd76f2380aa20db4348d3e198b7f7bb24 Mon Sep 17 00:00:00 2001
From: Giovanni Bussi <giovanni.bussi@gmail.com>
Date: Mon, 16 Jul 2018 19:54:11 +0200
Subject: [PATCH] Link plumed with libplumedKernel

Allow avoiding rpath-link. In addition, it will make
absolute sonames on linux possible (later commit).
---
 src/lib/Makefile | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/lib/Makefile b/src/lib/Makefile
index 395d3e8be..75583ae27 100644
--- a/src/lib/Makefile
+++ b/src/lib/Makefile
@@ -501,12 +501,13 @@ endif
 $(PLUMED_MAIN_STATIC): $(OBJ_MAIN) $(OBJ_KERNEL) $(OBJ_WRAPPER)
 	$(LD) $(LDFLAGS) $^ -o $@ $(LIBS) $(DYNAMIC_LIBS)
 	
-$(PLUMED_MAIN_SHARED): $(OBJ_MAIN) $(PLUMED_SHARED_OBJ)
-ifeq ($(SOEXT),dylib)
+# In principle we would like PLUMED_MAIN_SHARED to depend on PLUMED_SHARED_OBJ.
+# However, this would require a special flag on Linux (-rpath-link) in order to
+# find the functions defined in PLUMED_KERNEL (just check history of this file).
+# I thus prefer to directly link PLUMED_KERNEL.
+# This makes Linux identical to OSX and is likely more portable.
+$(PLUMED_MAIN_SHARED): $(OBJ_MAIN) $(OBJ_WRAPPER) $(PLUMED_KERNEL)
 	$(LD) $(LDFLAGS) $^ -o $@ $(LIBS)
-else
-	$(LD) $(LDFLAGS) $^ -o $@ -Wl,-rpath-link,"$(dir $@)" $(LIBS)
-endif
 
 $(PLUMED_MAIN_RUNTIME): $(OBJ_MAIN) $(OBJ_DYNAMIC_WRAPPER)
 	$(LD) $(LDFLAGS) $^ -o $@ $(LIBS)
-- 
GitLab