diff options
author | phk <phk@FreeBSD.org> | 1996-08-04 20:38:53 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1996-08-04 20:38:53 +0000 |
commit | c6caa4699e4cfaf0e3d4b35411102b5354e19566 (patch) | |
tree | e64e573583df7e90b347cbafa6ea74ce98e69a49 /usr.sbin/crunch | |
parent | ee88966824159672a760371172f32019eee12ae5 (diff) | |
download | FreeBSD-src-c6caa4699e4cfaf0e3d4b35411102b5354e19566.zip FreeBSD-src-c6caa4699e4cfaf0e3d4b35411102b5354e19566.tar.gz |
Enhance crunchgens understanding of our new /usr/obj/`pwd` strategy.
Diffstat (limited to 'usr.sbin/crunch')
-rw-r--r-- | usr.sbin/crunch/crunchgen/crunchgen.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/usr.sbin/crunch/crunchgen/crunchgen.c b/usr.sbin/crunch/crunchgen/crunchgen.c index 6a031b2..76c8333 100644 --- a/usr.sbin/crunch/crunchgen/crunchgen.c +++ b/usr.sbin/crunch/crunchgen/crunchgen.c @@ -488,11 +488,20 @@ void fillin_program(prog_t *p) p->srcdir = strdup(path); } if(!p->objdir && p->srcdir) { - sprintf(path, "/usr/obj/%s", p->srcdir); - if(is_dir(path)) - p->objdir = strdup(path); - else - p->objdir = p->srcdir; + FILE *f; + + sprintf(path, "cd %s && echo -n /usr/obj/`pwd`", p->srcdir); + p->objdir = p->srcdir; + f = popen(path,"r"); + if (f) { + fgets(path,sizeof path, f); + if (!pclose(f)) { + if(is_dir(path)) + p->objdir = strdup(path); + } + } + + } if(p->srcdir) sprintf(path, "%s/Makefile", p->srcdir); @@ -766,7 +775,7 @@ void prog_makefile_rules(FILE *outmk, prog_t *p) fprintf(outmk, "%s_OBJS=", p->ident); output_strlst(outmk, p->objs); fprintf(outmk, "%s_make:\n", p->ident); - fprintf(outmk, "\t(cd $(%s_SRCDIR); make $(%s_OBJS))\n\n", + fprintf(outmk, "\t(cd $(%s_SRCDIR) && make depend && make $(%s_OBJS))\n\n", p->ident, p->ident); } else |