diff options
author | midipix <writeonce@midipix.org> | 2016-04-24 09:14:59 -0400 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2016-04-24 10:31:23 -0400 |
commit | 112a2bc026f48bf9453c2bb8766f730e8c0d1bc9 (patch) | |
tree | ac307b883e62fd368f0a3e9e0128a01e55479cda /src/logic/slbt_exec_install.c | |
parent | 1f87fd5f1cddc5ad065a3f85b5fd5d09d709dca1 (diff) | |
download | slibtool-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.c | 12 |
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); |