summaryrefslogtreecommitdiffstats
path: root/usr.sbin/crunch
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1996-08-04 20:38:53 +0000
committerphk <phk@FreeBSD.org>1996-08-04 20:38:53 +0000
commitc6caa4699e4cfaf0e3d4b35411102b5354e19566 (patch)
treee64e573583df7e90b347cbafa6ea74ce98e69a49 /usr.sbin/crunch
parentee88966824159672a760371172f32019eee12ae5 (diff)
downloadFreeBSD-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.c21
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
OpenPOWER on IntegriCloud