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