summaryrefslogtreecommitdiff
path: root/src/logic/slbt_exec_install.c
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2016-04-24 09:14:59 -0400
committermidipix <writeonce@midipix.org>2016-04-24 10:31:23 -0400
commit112a2bc026f48bf9453c2bb8766f730e8c0d1bc9 (patch)
treeac307b883e62fd368f0a3e9e0128a01e55479cda /src/logic/slbt_exec_install.c
parent1f87fd5f1cddc5ad065a3f85b5fd5d09d709dca1 (diff)
downloadslibtool-112a2bc026f48bf9453c2bb8766f730e8c0d1bc9.tar.bz2
slibtool-112a2bc026f48bf9453c2bb8766f730e8c0d1bc9.tar.xz
execution context: link mode: install mode: added -release semantics support.
Diffstat (limited to 'src/logic/slbt_exec_install.c')
-rw-r--r--src/logic/slbt_exec_install.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/logic/slbt_exec_install.c b/src/logic/slbt_exec_install.c
index a595774..0eddd6d 100644
--- a/src/logic/slbt_exec_install.c
+++ b/src/logic/slbt_exec_install.c
@@ -233,6 +233,7 @@ static int slbt_exec_install_entry(
char lasource[PATH_MAX];
bool fexe = false;
bool fpe;
+ bool frelease;
struct stat st;
/* executable wrapper? */
@@ -297,9 +298,15 @@ static int slbt_exec_install_entry(
dest ? (char *)dest->arg : (char *)last->arg))
return -1;
- /* libfoo.a --> libfoo.so */
+ /* dot/suffix */
strcpy(slnkname,srcfile);
dot = strrchr(slnkname,'.');
+
+ /* libfoo.a --> libfoo.so.release */
+ sprintf(dot,"%s.release",dctx->cctx->settings.dsosuffix);
+ frelease = stat(slnkname,&st) ? false : true;
+
+ /* libfoo.a --> libfoo.so */
strcpy(dot,dctx->cctx->settings.dsosuffix);
/* PE support: does .libs/libfoo.so.def exist? */
@@ -377,6 +384,9 @@ static int slbt_exec_install_entry(
false))
return -1;
+ if (frelease)
+ return 0;
+
/* libfoo.so.x.y.z --> libfoo.so.x */
strcpy(slnkname,target);