summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 e575ff2..fea2193 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);
+ }
}
/**
OpenPOWER on IntegriCloud