aboutsummaryrefslogtreecommitdiffstats
path: root/src/redo.c
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2014-08-12 17:18:20 +0200
committerTharre <tharre3@gmail.com>2014-08-12 17:18:20 +0200
commit325c8e3992bf7b73714d10a5d2202c89ddbac189 (patch)
tree145bc56cd19144a43df0055e0a3623078031516c /src/redo.c
parent575076fac483fca12a179dd40e15183b49cb6c8f (diff)
downloadredo-325c8e3992bf7b73714d10a5d2202c89ddbac189.tar.gz
redo-325c8e3992bf7b73714d10a5d2202c89ddbac189.tar.xz
redo-325c8e3992bf7b73714d10a5d2202c89ddbac189.zip
Add the magic number to the dependency record.
The magic number will be used later to determine if a target has already been rebuild.
Diffstat (limited to 'src/redo.c')
-rw-r--r--src/redo.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/redo.c b/src/redo.c
index 69f9ade..0209a4f 100644
--- a/src/redo.c
+++ b/src/redo.c
@@ -3,12 +3,18 @@
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
+#include <time.h>
+#include <math.h>
+#include <limits.h>
#include <unistd.h>
#include "build.h"
#include "util.h"
#include "dbg.h"
+static inline int digits(unsigned n) {
+ return (int) log10(n) + 1;
+}
int main(int argc, char *argv[]) {
/* create .redo directory */
@@ -26,6 +32,17 @@ int main(int argc, char *argv[]) {
free(cwd);
+ srand(time(NULL)); /* TODO: error checking */
+ unsigned magic = rand();
+
+ char magic_str[digits(UINT_MAX) + 1];
+ sprintf(magic_str, "%u", magic);
+
+ printf("MAGIC: %s\n", magic_str);
+
+ if (setenv("REDO_MAGIC", magic_str, 0))
+ fatal("setenv()");
+
if (argc < 2) {
build_target("all");
} else {