summaryrefslogtreecommitdiff
path: root/usr.bin/make/make.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/make/make.h')
-rw-r--r--usr.bin/make/make.h39
1 files changed, 33 insertions, 6 deletions
diff --git a/usr.bin/make/make.h b/usr.bin/make/make.h
index 72c97b199a5..87b1f8cd5df 100644
--- a/usr.bin/make/make.h
+++ b/usr.bin/make/make.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: make.h,v 1.28 2000/11/24 14:27:19 espie Exp $ */
+/* $OpenBSD: make.h,v 1.29 2000/11/24 14:36:35 espie Exp $ */
/* $NetBSD: make.h,v 1.15 1997/03/10 21:20:00 christos Exp $ */
/*
@@ -90,6 +90,34 @@
#include "config.h"
#include "buf.h"
+#ifdef USE_TIMESPEC
+#include <sys/time.h>
+typedef struct timespec TIMESTAMP;
+#define set_out_of_date(t) (t).tv_sec = INT_MIN, (t).tv_nsec = 0
+#define is_out_of_date(t) ((t).tv_sec == INT_MIN && (t).tv_nsec == 0)
+#define grab_stat(s, t) \
+do { \
+ (t).tv_sec = (s).st_mtime; \
+ (t).tv_nsec = (s).st_mtimensec; \
+ if (is_out_of_date(t)) \
+ (t).tv_nsec++; \
+} while (0)
+#define is_before(t1, t2) timespeccmp(&(t1), &(t2), <)
+#define grab_date(d, t) \
+do { \
+ (t).tv_sec = d; \
+ (t).tv_nsec = 0; \
+ if (is_out_of_date(t)) \
+ (t).tv_nsec++; \
+} while (0)
+#define grab(n) \
+do { \
+ struct timeval tv; \
+ gettimeofday(&tv, NULL); \
+ TIMEVAL_TO_TIMESPEC(&(tv), &n); \
+} while (0)
+#define timestamp2time_t(t) ((t).tv_sec)
+#else
typedef time_t TIMESTAMP;
#define is_out_of_date(t) ((t) == INT_MIN)
#define set_out_of_date(t) (t) = INT_MIN
@@ -108,8 +136,7 @@ do { \
} while (0)
#define grab(n) time(&(n))
#define timestamp2time_t(t) (t)
-
-#define OUT_OF_DATE INT_MIN
+#endif
/* Variables that are kept in local GNodes. */
#define TARGET_INDEX 0
@@ -191,8 +218,8 @@ typedef struct GNode_ {
* made */
int unmade; /* The number of unmade children */
- time_t mtime; /* Its modification time */
- time_t cmtime; /* The modification time of its youngest
+ TIMESTAMP mtime; /* Its modification time */
+ TIMESTAMP cmtime; /* The modification time of its youngest
* child */
LIST iParents; /* Links to parents for which this is an
@@ -395,7 +422,7 @@ extern char var_Error[]; /* Value returned by Var_Parse when an error
* an empty string, so naive callers needn't
* worry about it. */
-extern time_t now; /* The time at the start of this whole
+extern TIMESTAMP now; /* The time at the start of this whole
* process */
extern Boolean oldVars; /* Do old-style variable substitution */