diff options
| author | Tharre <tharre3@gmail.com> | 2016-10-27 23:43:45 +0200 | 
|---|---|---|
| committer | Tharre <tharre3@gmail.com> | 2016-10-27 23:50:45 +0200 | 
| commit | 15465e8b518d9413c11dcdcad712a6a51b3ebde2 (patch) | |
| tree | f6fed48f65879e2d6be70fd602e2e61062a1ccb2 | |
| parent | d0b51f93d00c600d2c2e5480b1fd1d8d32bb1fdc (diff) | |
| download | redo-15465e8b518d9413c11dcdcad712a6a51b3ebde2.tar.gz redo-15465e8b518d9413c11dcdcad712a6a51b3ebde2.tar.xz redo-15465e8b518d9413c11dcdcad712a6a51b3ebde2.zip | |
Implement logging using REDO_DEBUG env variable
| -rw-r--r-- | src/build.c | 6 | ||||
| -rw-r--r-- | src/dbg.h | 4 | ||||
| -rw-r--r-- | src/redo.c | 7 | 
3 files changed, 17 insertions, 0 deletions
| diff --git a/src/build.c b/src/build.c index db73d4a..be739c9 100644 --- a/src/build.c +++ b/src/build.c @@ -483,6 +483,7 @@ static int handle_c(dep_info *dep) {  	if (!depfd) {  		if (errno == ENOENT) {  			/* dependency record does not exist */ +			log_warn("%s ood: dependency record doesn't exist\n", dep->target);  			return build_target(dep);  		} else {  			fatal("redo: failed to open %s", dep->path); @@ -493,6 +494,7 @@ static int handle_c(dep_info *dep) {  	if (dsv_parse_file(&ctx_dep, depfd)) {  		/* parsing failed */ +		log_info("%s ood: parsing of dependency file failed\n", dep->target);  		retval = build_target(dep);  		goto exit;  	} @@ -506,6 +508,7 @@ static int handle_c(dep_info *dep) {  			retval = 1;  			goto exit2;  		} else { +			log_info("%s ood: target file nonexistent\n", dep->target);  			retval = build_target(dep);  			goto exit2;  		} @@ -515,6 +518,7 @@ static int handle_c(dep_info *dep) {  	if (sscanf(ctx_dep.fields[1], "%lld.%ld", (long long*)&dep->ctime.tv_sec,  				&dep->ctime.tv_nsec) < 2) {  		/* ctime parsing failed */ +		log_info("%s ood: ctime parsing failed\n", dep->target);  		retval = build_target(dep);  		goto exit3;  	} @@ -537,6 +541,7 @@ static int handle_c(dep_info *dep) {  		if (memcmp(old_hash, dep->hash, 20)) {  			/* target hash doesn't match */ +			log_info("%s ood: hashes don't match\n", dep->target);  			free(old_hash);  			retval = build_target(dep);  			goto exit3; @@ -577,6 +582,7 @@ static int handle_c(dep_info *dep) {  		free(ctx_prereq.fields[1]);  		if (outofdate) { +			log_info("%s ood: subtarget is ood\n", dep->target);  			retval = build_target(dep);  			break;  		} @@ -25,12 +25,16 @@  #define DEBUG 0  #endif +extern int DBG_LVL; +  /* helper functions which help in replacing the GNU extension ##__VA_ARGS__ */  #define STRINGIFY(x) #x  #define PREFIX(...) PREFIX_HELPER(_FILENAME, __LINE__, __VA_ARGS__)  #define SUFFIX(S, M, ...) M S, __VA_ARGS__  #define log_err(...) fprintf(stderr, PREFIX(__VA_ARGS__)) +#define log_warn(...) do { if (DBG_LVL > 2) log_err(__VA_ARGS__); } while (0) +#define log_info(...) do { if (DBG_LVL > 1) log_err(__VA_ARGS__); } while (0)  #define die(...) die_(PREFIX(__VA_ARGS__))  #define fatal(...) die(SUFFIX(": %s\n", __VA_ARGS__, strerror(errno))) @@ -46,6 +46,8 @@ void prepare_env() {  		fatal("redo: failed to setenv() REDO_MAGIC to %s", magic_str);  } +int DBG_LVL; +  int main(int argc, char *argv[]) {  	srand(time(NULL));  	char *argv_base = xbasename(argv[0]); @@ -78,6 +80,11 @@ int main(int argc, char *argv[]) {  		if (!parent || !root || !magic)  			die("%s must be called inside a .do script\n", argv[0]); +		/* set DBG_LVL (for dbg.h) */ +		char *env = getenv("REDO_DEBUG"); +		if (env) +			DBG_LVL = atoi(env); +  		if (ident == 'a')  			add_prereq(parent, parent, ident);  		else | 
