summaryrefslogtreecommitdiff
path: root/usr.bin/make
diff options
context:
space:
mode:
authorMax Khon <fjoe@FreeBSD.org>2007-06-01 04:20:19 +0000
committerMax Khon <fjoe@FreeBSD.org>2007-06-01 04:20:19 +0000
commit6d000893b459c182b5fe5728ec1b39369363af08 (patch)
tree8fef33b0cca70d313b3552cbddcb82c5e653e180 /usr.bin/make
parent8ef6b1429f8189ca50b09759bd8b943d16713ef2 (diff)
Notes
Diffstat (limited to 'usr.bin/make')
-rw-r--r--usr.bin/make/main.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/usr.bin/make/main.c b/usr.bin/make/main.c
index e575ff2f8797..fea219306689 100644
--- a/usr.bin/make/main.c
+++ b/usr.bin/make/main.c
@@ -696,6 +696,10 @@ Remake_Makefiles(void)
int remade_cnt = 0;
Compat_InstallSignalHandlers();
+ if (curdir != objdir) {
+ if (chdir(curdir) < 0)
+ Fatal("Failed to change directory to %s.", curdir);
+ }
LST_FOREACH(ln, &source_makefiles) {
LstNode *ln2;
@@ -819,12 +823,16 @@ Remake_Makefiles(void)
setenv("MAKEFLAGS", save_makeflags, 1);
else
unsetenv("MAKEFLAGS");
- chdir(curdir);
if (execvp(save_argv[0], save_argv) < 0) {
Fatal("Can't restart `%s': %s.",
save_argv[0], strerror(errno));
}
}
+
+ if (curdir != objdir) {
+ if (chdir(objdir) < 0)
+ Fatal("Failed to change directory to %s.", objdir);
+ }
}
/**