22 #ifndef _REMAKE_FILEDEF_H 23 #define _REMAKE_FILEDEF_H 148 #if FILE_TIMESTAMP_HI_RES 149 # define FILE_TIMESTAMP_STAT_MODTIME(fname, st) \ 150 file_timestamp_cons (fname, (st).st_mtime, (st).ST_MTIM_NSEC) 152 # define FILE_TIMESTAMP_STAT_MODTIME(fname, st) \ 153 file_timestamp_cons (fname, (st).st_mtime, 0) 161 #define FILE_TIMESTAMPS_PER_S (FILE_TIMESTAMP_HI_RES ? 1000000000 : 1) 162 #define FILE_TIMESTAMP_LO_BITS (FILE_TIMESTAMP_HI_RES ? 30 : 0) 164 #define FILE_TIMESTAMP_S(ts) (((ts) - ORDINARY_MTIME_MIN) \ 165 >> FILE_TIMESTAMP_LO_BITS) 166 #define FILE_TIMESTAMP_NS(ts) ((int) (((ts) - ORDINARY_MTIME_MIN) \ 167 & ((1 << FILE_TIMESTAMP_LO_BITS) - 1))) 181 #define FLOOR_LOG2_SECONDS_PER_YEAR 24 182 #define FILE_TIMESTAMP_PRINT_LEN_BOUND \ 183 (((sizeof (FILE_TIMESTAMP) * CHAR_BIT - 1 - FLOOR_LOG2_SECONDS_PER_YEAR) \ 205 #define file_mtime(f) file_mtime_1 ((f), 1) 210 #define file_mtime_no_search(f) file_mtime_1 ((f), 0) 212 #define file_mtime_1(f, v) \ 213 ((f)->last_mtime == UNKNOWN_MTIME ? f_mtime ((f), v) : (f)->last_mtime) 218 #define UNKNOWN_MTIME 0 221 #define NONEXISTENT_MTIME 1 228 #define ORDINARY_MTIME_MIN (OLD_MTIME + 1) 229 #define ORDINARY_MTIME_MAX ((FILE_TIMESTAMP_S (NEW_MTIME) \ 230 << FILE_TIMESTAMP_LO_BITS) \ 231 + ORDINARY_MTIME_MIN + FILE_TIMESTAMPS_PER_S - 1) 239 #define NEW_MTIME INTEGER_TYPE_MAXIMUM (FILE_TIMESTAMP) 241 #define check_renamed(file) \ 242 while ((file)->renamed != 0) (file) = (file)->renamed struct dep * expand_extra_prereqs(const struct variable *extra)
unsigned int phony
Definition: filedef.h:109
unsigned int nlines
Definition: filedef.h:41
const char * name
Definition: filedef.h:36
unsigned int cmd_target
Definition: filedef.h:108
void file_timestamp_sprintf(char *p, FILE_TIMESTAMP ts)
FILE_TIMESTAMP file_timestamp_now(int *)
struct file * default_file
void verify_file_data_base(void)
unsigned int secondary
Definition: filedef.h:112
Definition: commands.h:27
unsigned int file_profiled
Definition: filedef.h:121
gmk_floc floc
Definition: filedef.h:39
unsigned int no_diag
Definition: filedef.h:119
int command_flags
Definition: filedef.h:79
Definition: variable.h:98
unsigned int tried_implicit
Definition: filedef.h:102
void rehash_file(struct file *file, const char *name)
void init_hash_files(void)
struct file * lookup_file(const char *name)
unsigned int updated
Definition: filedef.h:106
FILE_TIMESTAMP mtime_before_update
Definition: filedef.h:75
FILE_TIMESTAMP file_timestamp_cons(char const *, time_t, long int)
void remove_intermediates(int sig)
struct commands * cmds
Definition: filedef.h:46
breakpoint_mask_t
Definition: types.h:55
struct file * double_colon
Definition: filedef.h:72
void set_command_state(struct file *file, enum cmd_state state)
struct file * parent
Definition: filedef.h:68
int try_implicit_rule(struct file *file, unsigned int depth)
const char * stem
Definition: filedef.h:47
struct dep * deps
Definition: filedef.h:45
struct file * enter_file(const char *name)
unsigned int is_target
Definition: filedef.h:107
char * build_target_list(char *old_list)
unsigned int considered
Definition: filedef.h:77
unsigned int updating
Definition: filedef.h:105
struct variable_set_list * pat_variables
Definition: filedef.h:64
FILE_TIMESTAMP last_mtime
Definition: filedef.h:74
unsigned int loaded
Definition: filedef.h:99
update_status
Definition: filedef.h:80
struct dep * also_make
Definition: filedef.h:49
struct variable_set_list * variables
Definition: filedef.h:60
struct file * prev
Definition: filedef.h:50
struct dep * enter_prereqs(struct dep *prereqs, const char *stem)
struct file * last
Definition: filedef.h:53
unsigned int pat_searched
Definition: filedef.h:117
Definition: gnuremake.h:23
uint64_t elapsed_time
Definition: filedef.h:40
void rename_file(struct file *file, const char *name)
unsigned int ignore_vpath
Definition: filedef.h:116
int stemlen_compare(const void *v1, const void *v2)
breakpoint_mask_t tracing
Definition: filedef.h:95
struct dep * split_prereqs(char *prereqstr)
void print_file_data_base(void)
cmd_state
Definition: filedef.h:87
const char * vpath
Definition: filedef.h:38
struct file * renamed
Definition: filedef.h:57
const char * hname
Definition: filedef.h:37
unsigned int intermediate
Definition: filedef.h:111
unsigned int precious
Definition: filedef.h:98
unsigned int dontcare
Definition: filedef.h:114
void notice_finished_file(struct file *file)
unsigned int low_resolution_time
Definition: filedef.h:100
const char * description
Definition: filedef.h:43
void print_prereqs(const struct dep *deps)
Definition: variable.h:56
FILE_TIMESTAMP f_mtime(struct file *file, int search)
#define FILE_TIMESTAMP
Definition: make.h:252
enum file::update_status ENUM_BITFIELD(2)
unsigned int builtin
Definition: filedef.h:97