
int compare_time(struct timespec target_st_mtim, struct timespec dep_st_mtim) {
    // Check the second part
    if (target_st_mtim.tv_sec > dep_st_mtim.tv_sec) {
        return 1;
    } else if (target_st_mtim.tv_sec < dep_st_mtim.tv_sec) {
        return 0;
    } else {   // Check the nanosecond part
        if (target_st_mtim.tv_nsec < dep_st_mtim.tv_nsec) {
            return 0;
        } else {
            return 1;
        }
    }
}
Compare the modification time of the target file with a dependency
   file. If the time of the dependency file is newer than that of the 
   target, return 0; otherwise, return 1.
