diff options
| -rw-r--r-- | src/build.c | 14 | ||||
| -rw-r--r-- | src/redo.c | 2 | 
2 files changed, 5 insertions, 11 deletions
diff --git a/src/build.c b/src/build.c index 27bf48e..b74c4fd 100644 --- a/src/build.c +++ b/src/build.c @@ -119,7 +119,8 @@ int build_target(const char *target) {  		free(dirc); -		char **argv = parse_shebang((char*)target, dofiles->chosen, temp_output); +		char **argv = parse_shebang(xbasename((char*)target), +				xbasename(dofiles->chosen), xbasename(temp_output));  		/* set "REDO_PARENT_TARGET" */  		if (setenv("REDO_PARENT_TARGET", target, 1)) @@ -267,15 +268,7 @@ static do_attr *get_dofiles(const char *target) {  	do_attr *dofiles = xmalloc(sizeof(do_attr));  	dofiles->specific = concat(2, target, ".do"); -	if (!is_absolute(target)) { -		dofiles->general = concat(3, "default", take_extension(target), ".do"); -	} else { -		char *dirc = xstrdup(target); -		char *dt = dirname(dirc); - -		dofiles->general = concat(4, dt, "/default", take_extension(target), ".do"); -		free(dirc); -	} +	dofiles->general = concat(3, "default", take_extension(target), ".do");  	if (fexists(dofiles->specific))  		dofiles->chosen = dofiles->specific; @@ -457,6 +450,7 @@ static int handle_c(const char *target) {  		/* magic number matches */  		return 1; +  	bool rebuild = false;  	unsigned char hash[HASHSIZE];  	hash_file(target, hash); @@ -88,7 +88,7 @@ int main(int argc, char *argv[]) {  				} while (!*temp);  				update_target(*temp, ident); -				add_dep(*temp, parent, ident); +				add_dep(*temp, xbasename(parent), ident);  				*temp = NULL;  			}  | 
