diff options
author | midipix <writeonce@midipix.org> | 2016-09-13 19:20:44 -0400 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2016-09-13 19:20:44 -0400 |
commit | 7f35de9733d3c82eadd5eb17028803a602c3c1d8 (patch) | |
tree | fc5a3166a943e44723213fa4a01965d5432718e9 /src/logic/slbt_exec_link.c | |
parent | 1ed71a9b2fff4dfc73432b94e3049b92d16d1717 (diff) | |
download | slibtool-7f35de9733d3c82eadd5eb17028803a602c3c1d8.tar.bz2 slibtool-7f35de9733d3c82eadd5eb17028803a602c3c1d8.tar.xz |
link mode: account for directory depth when generating .deps for .la wrapper.
Diffstat (limited to 'src/logic/slbt_exec_link.c')
-rw-r--r-- | src/logic/slbt_exec_link.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/logic/slbt_exec_link.c b/src/logic/slbt_exec_link.c index cde7136..be46fab 100644 --- a/src/logic/slbt_exec_link.c +++ b/src/logic/slbt_exec_link.c @@ -522,6 +522,7 @@ static int slbt_exec_link_create_dep_file( char deplibs[PATH_MAX]; char depfile[PATH_MAX]; struct stat st; + int ldepth; (void)dctx; @@ -578,8 +579,19 @@ static int slbt_exec_link_create_dep_file( } /* [-L... as needed] */ - if (base > *parg) { - if (fprintf(ectx->fdeps,"-L%s/.libs\n",reladir) < 0) { + if ((base > *parg) && (ectx->ldirdepth >= 0)) { + if (fputs("-L",ectx->fdeps) < 0) { + fclose(fdeps); + return SLBT_SYSTEM_ERROR(dctx); + } + + for (ldepth=ectx->ldirdepth; ldepth; ldepth--) + if (fputs("../",ectx->fdeps) < 0) { + fclose(fdeps); + return SLBT_SYSTEM_ERROR(dctx); + } + + if (fprintf(ectx->fdeps,"%s/.libs\n",reladir) < 0) { fclose(fdeps); return SLBT_SYSTEM_ERROR(dctx); } |