Print this page
fixup! make: be serial if 'make', parallel if 'dmake', and parallel if '-j' is specified either way
fixup! make: translate using gettext, rather than the unmaintainable catgets
fixup! make: unifdef for two bugfixes conditioned for unknown reasons (defined)
@@ -57,13 +57,10 @@
#include <vroot/report.h> /* report_dependency(), get_report_file() */
// From read2.cc
extern Name normalize_name(register wchar_t *name_string, register int length);
-// From parallel.cc
-#define MAXJOBS_ADJUST_RFE4694000
-
extern void job_adjust_fini();
/*
* Defined macros
@@ -396,28 +393,31 @@
/*
* Find the dmake_mode: parallel, or serial.
*/
if ((!pmake_cap_r_specified) &&
(!pmake_machinesfile_specified)) {
- char *s = strdup(argv[0]);
+ char *s, *b;
+
+ if ((s = strdup(argv[0])) == NULL)
+ fatal(gettext("Out of memory"));
+
+ b = basename(s);
MBSTOWCS(wcs_buffer, "DMAKE_MODE");
dmake_name2 = GETNAME(wcs_buffer, FIND_LENGTH);
prop2 = get_prop(dmake_name2->prop, macro_prop);
// If we're invoked as 'make' run serially, regardless of DMAKE_MODE
// If we're invoked as 'make' but passed -j, run parallel
// If we're invoked as 'dmake', without DMAKE_MODE, default parallel
// If we're invoked as 'dmake' and DMAKE_MODE is set, honour it.
- if ((strcmp(basename(s), "make") == 0) &&
+ if ((strcmp(b, "make") == 0) &&
!dmake_max_jobs_specified) {
dmake_mode_type = serial_mode;
no_parallel = true;
} else if (prop2 == NULL) {
/* DMAKE_MODE not defined, default based on our name */
- char *s = strdup(argv[0]);
-
- if (strcmp(basename(s), "dmake") == 0) {
+ if (strcmp(b, "dmake") == 0) {
dmake_mode_type = parallel_mode;
no_parallel = false;
}
} else {
dmake_value2 = prop2->body.macro.value;