| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: main.c,v 1.418 2020/10/31 11:34:30 rillig Exp $ */ | | 1 | /* $NetBSD: main.c,v 1.419 2020/10/31 16:13:00 rillig Exp $ */ |
2 | | | 2 | |
3 | /* | | 3 | /* |
4 | * Copyright (c) 1988, 1989, 1990, 1993 | | 4 | * Copyright (c) 1988, 1989, 1990, 1993 |
5 | * The Regents of the University of California. All rights reserved. | | 5 | * The Regents of the University of California. All rights reserved. |
6 | * | | 6 | * |
7 | * This code is derived from software contributed to Berkeley by | | 7 | * This code is derived from software contributed to Berkeley by |
8 | * Adam de Boor. | | 8 | * Adam de Boor. |
9 | * | | 9 | * |
10 | * Redistribution and use in source and binary forms, with or without | | 10 | * Redistribution and use in source and binary forms, with or without |
11 | * modification, are permitted provided that the following conditions | | 11 | * modification, are permitted provided that the following conditions |
12 | * are met: | | 12 | * are met: |
13 | * 1. Redistributions of source code must retain the above copyright | | 13 | * 1. Redistributions of source code must retain the above copyright |
14 | * notice, this list of conditions and the following disclaimer. | | 14 | * notice, this list of conditions and the following disclaimer. |
| @@ -108,27 +108,27 @@ | | | @@ -108,27 +108,27 @@ |
108 | | | 108 | |
109 | #include <errno.h> | | 109 | #include <errno.h> |
110 | #include <signal.h> | | 110 | #include <signal.h> |
111 | #include <stdarg.h> | | 111 | #include <stdarg.h> |
112 | #include <time.h> | | 112 | #include <time.h> |
113 | | | 113 | |
114 | #include "make.h" | | 114 | #include "make.h" |
115 | #include "dir.h" | | 115 | #include "dir.h" |
116 | #include "job.h" | | 116 | #include "job.h" |
117 | #include "pathnames.h" | | 117 | #include "pathnames.h" |
118 | #include "trace.h" | | 118 | #include "trace.h" |
119 | | | 119 | |
120 | /* "@(#)main.c 8.3 (Berkeley) 3/19/94" */ | | 120 | /* "@(#)main.c 8.3 (Berkeley) 3/19/94" */ |
121 | MAKE_RCSID("$NetBSD: main.c,v 1.418 2020/10/31 11:34:30 rillig Exp $"); | | 121 | MAKE_RCSID("$NetBSD: main.c,v 1.419 2020/10/31 16:13:00 rillig Exp $"); |
122 | #if defined(MAKE_NATIVE) && !defined(lint) | | 122 | #if defined(MAKE_NATIVE) && !defined(lint) |
123 | __COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 " | | 123 | __COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 " |
124 | "The Regents of the University of California. " | | 124 | "The Regents of the University of California. " |
125 | "All rights reserved."); | | 125 | "All rights reserved."); |
126 | #endif | | 126 | #endif |
127 | | | 127 | |
128 | #ifndef DEFMAXLOCAL | | 128 | #ifndef DEFMAXLOCAL |
129 | #define DEFMAXLOCAL DEFMAXJOBS | | 129 | #define DEFMAXLOCAL DEFMAXJOBS |
130 | #endif | | 130 | #endif |
131 | | | 131 | |
132 | CmdOpts opts; | | 132 | CmdOpts opts; |
133 | time_t now; /* Time at start of make */ | | 133 | time_t now; /* Time at start of make */ |
134 | GNode *DEFAULT; /* .DEFAULT node */ | | 134 | GNode *DEFAULT; /* .DEFAULT node */ |
| @@ -711,27 +711,27 @@ Main_SetObjdir(const char *fmt, ...) | | | @@ -711,27 +711,27 @@ Main_SetObjdir(const char *fmt, ...) |
711 | va_list ap; | | 711 | va_list ap; |
712 | | | 712 | |
713 | va_start(ap, fmt); | | 713 | va_start(ap, fmt); |
714 | vsnprintf(path = buf, MAXPATHLEN, fmt, ap); | | 714 | vsnprintf(path = buf, MAXPATHLEN, fmt, ap); |
715 | va_end(ap); | | 715 | va_end(ap); |
716 | | | 716 | |
717 | if (path[0] != '/') { | | 717 | if (path[0] != '/') { |
718 | snprintf(buf2, MAXPATHLEN, "%s/%s", curdir, path); | | 718 | snprintf(buf2, MAXPATHLEN, "%s/%s", curdir, path); |
719 | path = buf2; | | 719 | path = buf2; |
720 | } | | 720 | } |
721 | | | 721 | |
722 | /* look for the directory and try to chdir there */ | | 722 | /* look for the directory and try to chdir there */ |
723 | if (stat(path, &sb) == 0 && S_ISDIR(sb.st_mode)) { | | 723 | if (stat(path, &sb) == 0 && S_ISDIR(sb.st_mode)) { |
724 | if (access(path, W_OK) || chdir(path)) { | | 724 | if (chdir(path)) { |
725 | (void)fprintf(stderr, "make warning: %s: %s.\n", | | 725 | (void)fprintf(stderr, "make warning: %s: %s.\n", |
726 | path, strerror(errno)); | | 726 | path, strerror(errno)); |
727 | } else { | | 727 | } else { |
728 | snprintf(objdir, sizeof objdir, "%s", path); | | 728 | snprintf(objdir, sizeof objdir, "%s", path); |
729 | Var_Set(".OBJDIR", objdir, VAR_GLOBAL); | | 729 | Var_Set(".OBJDIR", objdir, VAR_GLOBAL); |
730 | setenv("PWD", objdir, 1); | | 730 | setenv("PWD", objdir, 1); |
731 | Dir_InitDot(); | | 731 | Dir_InitDot(); |
732 | purge_cached_realpaths(); | | 732 | purge_cached_realpaths(); |
733 | rc = TRUE; | | 733 | rc = TRUE; |
734 | if (opts.enterFlag && strcmp(objdir, curdir) != 0) | | 734 | if (opts.enterFlag && strcmp(objdir, curdir) != 0) |
735 | enterFlagObj = TRUE; | | 735 | enterFlagObj = TRUE; |
736 | } | | 736 | } |
737 | } | | 737 | } |