expansions and searches are complete. This fixes an assertion in a
situation where the MAKEFILES variable contains a file path that
contains tilde.
+2011-04-29 Boris Kolpackov <boris@codesynthesis.com>
+
+ * read.c (eval_makefile): Delay caching of the file name until after
+ all the expansions and searches.
+
2011-04-17 David A. Wheeler <dwheeler@dwheeler.com>
* doc/make.texi (Reading Makefiles): Document "!=".
char *expanded = 0;
int makefile_errno;
- filename = strcache_add (filename);
- ebuf.floc.filenm = filename;
+ ebuf.floc.filenm = filename; /* Use the original file name. */
ebuf.floc.lineno = 1;
if (ISDB (DB_VERBOSE))
"/", filename);
ebuf.fp = fopen (included, "r");
if (ebuf.fp)
- {
- filename = strcache_add (included);
- break;
- }
+ {
+ filename = included;
+ break;
+ }
}
}
+ /* Now we have the final name for this makefile. Enter it into
+ the cache. */
+ filename = strcache_add (filename);
+
/* Add FILENAME to the chain of read makefiles. */
deps = alloc_dep ();
deps->next = read_makefiles;