diff options
author | midipix <writeonce@midipix.org> | 2016-04-22 07:49:01 -0400 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2016-04-23 09:25:13 -0400 |
commit | f633074f6dae55ae9599c11a085f824c67881676 (patch) | |
tree | eefe0a3d2639fb325692e7d639f7fb794e321891 /src | |
parent | d117fced27de17371e60d15a34fd0200d6d2c81a (diff) | |
download | slibtool-f633074f6dae55ae9599c11a085f824c67881676.tar.bz2 slibtool-f633074f6dae55ae9599c11a085f824c67881676.tar.xz |
execution context: account for -module when constructing relevant strings.
Diffstat (limited to 'src')
-rw-r--r-- | src/logic/slbt_exec_ctx.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/logic/slbt_exec_ctx.c b/src/logic/slbt_exec_ctx.c index 4719f04..ad4ffa7 100644 --- a/src/logic/slbt_exec_ctx.c +++ b/src/logic/slbt_exec_ctx.c @@ -146,6 +146,8 @@ int slbt_get_exec_ctx( char * ch; char * mark; char * slash; + const char * arprefix; + const char * dsoprefix; const char * ref; int i; @@ -268,11 +270,20 @@ int slbt_get_exec_ctx( /* linking: arfilename, lafilename, dsofilename */ if (dctx->cctx->mode == SLBT_MODE_LINK && dctx->cctx->libname) { + /* arprefix, dsoprefix */ + if (dctx->cctx->drvflags & SLBT_DRIVER_MODULE) { + arprefix = ""; + dsoprefix = ""; + } else { + arprefix = dctx->cctx->settings.arprefix; + dsoprefix = dctx->cctx->settings.dsoprefix; + } + /* arfilename */ ictx->ctx.arfilename = ch; ch += sprintf(ch,"%s%s%s%s", ictx->ctx.ldirname, - dctx->cctx->settings.arprefix, + arprefix, dctx->cctx->libname, dctx->cctx->settings.arsuffix); ch++; @@ -283,9 +294,7 @@ int slbt_get_exec_ctx( ictx->ctx.lafilename = ch; ch += sprintf(ch,"%s%s%s.la", ictx->ctx.ldirname, - (dctx->cctx->drvflags & SLBT_DRIVER_MODULE) - ? "" - : dctx->cctx->settings.dsoprefix, + dsoprefix, dctx->cctx->libname); ch++; @@ -294,9 +303,7 @@ int slbt_get_exec_ctx( ictx->ctx.dsofilename = ch; ch += sprintf(ch,"%s%s%s%s", ictx->ctx.ldirname, - (dctx->cctx->drvflags & SLBT_DRIVER_MODULE) - ? "" - : dctx->cctx->settings.dsoprefix, + dsoprefix, dctx->cctx->libname, dctx->cctx->settings.dsosuffix); ch++; @@ -305,7 +312,7 @@ int slbt_get_exec_ctx( ictx->ctx.deffilename = ch; ch += sprintf(ch,"%s%s%s%s.def", ictx->ctx.ldirname, - dctx->cctx->settings.dsoprefix, + dsoprefix, dctx->cctx->libname, dctx->cctx->settings.dsosuffix); ch++; |