From: Theodore Ts'o Date: Sat, 3 Apr 2004 18:53:46 +0000 (-0500) Subject: Refine the build process to avoid re-running subst all the time on X-Git-Tag: APPLE_UUID_SNAP_1~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dd60705665b916c9f67c3bbf86aa6bb620a14ecd;p=thirdparty%2Fe2fsprogs.git Refine the build process to avoid re-running subst all the time on some generated files, by having subst update the modtime on these files even when the generated file hasn't changed. We do this with generated files that do not have any downstream dependencies. --- diff --git a/ChangeLog b/ChangeLog index 26fe6b963..e995b7f37 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-04-03 Theodore Ts'o + * MCONFIG.in (SUBSTITUTE_UPTIME): New definition which passes the + -t option to subst. + * configure.in: Add test for stdint.h 2004-03-19 Theodore Ts'o diff --git a/MCONFIG.in b/MCONFIG.in index ba99911c4..0e9fc6527 100644 --- a/MCONFIG.in +++ b/MCONFIG.in @@ -109,6 +109,7 @@ LINUX_INCLUDE=@LINUX_INCLUDE@ # SUBST_CONF=$(top_builddir)/util/subst.conf SUBSTITUTE= $(top_builddir)/util/subst -f $(SUBST_CONF) +SUBSTITUTE_UPTIME= $(top_builddir)/util/subst -t -f $(SUBST_CONF) DEP_SUBSTITUTE= $(top_builddir)/util/subst $(SUBST_CONF) $(top_builddir)/util/subst: diff --git a/debugfs/ChangeLog b/debugfs/ChangeLog index 3f546c8ee..240a237b8 100644 --- a/debugfs/ChangeLog +++ b/debugfs/ChangeLog @@ -1,3 +1,10 @@ +2004-04-03 Theodore Ts'o + + * Makefile.in: Update the modtime even if subst doesn't need to + update the debugfs man page, to avoid always re-running + subst, especially since there are no dependencies on the + man page. + 2004-03-20 Theodore Ts'o * debugfs.c (make_link): Set the filetype information when diff --git a/debugfs/Makefile.in b/debugfs/Makefile.in index cfc24e998..cb5b90d87 100644 --- a/debugfs/Makefile.in +++ b/debugfs/Makefile.in @@ -41,7 +41,7 @@ debug_cmds.c debug_cmds.h: debug_cmds.ct $(MK_CMDS) $(srcdir)/debug_cmds.ct debugfs.8: $(DEP_SUBSTITUTE) $(srcdir)/debugfs.8.in - $(SUBSTITUTE) $(srcdir)/debugfs.8.in debugfs.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/debugfs.8.in debugfs.8 installdirs: $(top_srcdir)/mkinstalldirs $(DESTDIR)$(root_sbindir) \ diff --git a/e2fsck/ChangeLog b/e2fsck/ChangeLog index dd0d70f0f..280860e6a 100644 --- a/e2fsck/ChangeLog +++ b/e2fsck/ChangeLog @@ -1,3 +1,10 @@ +2004-04-03 Theodore Ts'o + + * Makefile.in: Update the modtime even if subst doesn't need to + update the e2fsck man page, to avoid always re-running + subst, especially since there are no dependencies on the + man page. + 2004-02-28 Theodore Ts'o * Release of E2fsprogs 1.35 diff --git a/e2fsck/Makefile.in b/e2fsck/Makefile.in index 43a674c0b..d91d56163 100644 --- a/e2fsck/Makefile.in +++ b/e2fsck/Makefile.in @@ -137,7 +137,7 @@ profiled: mkdir profiled e2fsck.8: $(DEP_SUBSTITUTE) $(srcdir)/e2fsck.8.in - $(SUBSTITUTE) $(srcdir)/e2fsck.8.in e2fsck.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/e2fsck.8.in e2fsck.8 installdirs: $(top_srcdir)/mkinstalldirs $(DESTDIR)$(root_sbindir) \ diff --git a/ext2ed/ChangeLog b/ext2ed/ChangeLog index 150871d03..c233a754e 100644 --- a/ext2ed/ChangeLog +++ b/ext2ed/ChangeLog @@ -1,3 +1,10 @@ +2004-04-03 Theodore Ts'o + + * Makefile.in: Update the modtime even if subst doesn't need to + update the ext2ed man page and conbfiguration, to avoid + always re-running subst, especially since there are no + dependencies on these generated files. + 2004-02-28 Theodore Ts'o * Release of E2fsprogs 1.35 diff --git a/ext2ed/Makefile.in b/ext2ed/Makefile.in index a581ee3f3..610635a07 100644 --- a/ext2ed/Makefile.in +++ b/ext2ed/Makefile.in @@ -60,10 +60,10 @@ ext2ed: $(OBJS) $(CC) $(ALL_LDFLAGS) -o ext2ed $(OBJS) $(LIBS) ext2ed.8: $(DEP_SUBSTITUTE) $(srcdir)/ext2ed.8.in - $(SUBSTITUTE) $(srcdir)/ext2ed.8.in ext2ed.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/ext2ed.8.in ext2ed.8 ext2ed.conf: $(DEP_SUBSTITUTE) $(srcdir)/ext2ed.conf.in - $(SUBSTITUTE) $(srcdir)/ext2ed.conf.in ext2ed.conf + $(SUBSTITUTE_UPTIME) $(srcdir)/ext2ed.conf.in ext2ed.conf clean: $(RM) -f ext2ed $(OBJS) $(DOCS) ext2ed.conf ext2ed.8 diff --git a/lib/blkid/ChangeLog b/lib/blkid/ChangeLog index cd26bbfd6..022b4ba50 100644 --- a/lib/blkid/ChangeLog +++ b/lib/blkid/ChangeLog @@ -1,3 +1,10 @@ +2004-04-03 Theodore Ts'o + + * Makefile.in: Update the modtime even if subst doesn't need to + update the libblkid man page, to avoid always re-running + subst, especially since there are no dependencies on the + man page. + 2004-04-03 Theodore Ts'o * blkid_types.h.in: Remove check for _UUID_TYPES since uuid_types.h diff --git a/lib/blkid/Makefile.in b/lib/blkid/Makefile.in index 5e27184f6..0f82f60b0 100644 --- a/lib/blkid/Makefile.in +++ b/lib/blkid/Makefile.in @@ -68,7 +68,7 @@ $(top_builddir)/lib/blkid/blkid_types.h: $(srcdir)/blkid_types.h.in $(top_buildd cd $(top_builddir); CONFIG_FILES=$(my_dir)/blkid_types.h ./config.status libblkid.3: $(DEP_SUBSTITUTE) $(srcdir)/libblkid.3.in - $(SUBSTITUTE) $(srcdir)/libblkid.3.in libblkid.3 + $(SUBSTITUTE_UPTIME) $(srcdir)/libblkid.3.in libblkid.3 tst_cache: $(srcdir)/cache.c $(DEPLIBS_BLKID) $(CC) -o tst_cache -DTEST_PROGRAM $(srcdir)/cache.c $(LIBS_BLKID) $(ALL_CFLAGS) diff --git a/lib/uuid/ChangeLog b/lib/uuid/ChangeLog index 6de5b963e..fd665c53c 100644 --- a/lib/uuid/ChangeLog +++ b/lib/uuid/ChangeLog @@ -1,3 +1,10 @@ +2004-04-03 Theodore Ts'o + + * Makefile.in: Update the modtime even if subst doesn't need to + update the libuuid man pages, to avoid always re-running + subst, especially since there are no dependencies on the + man page. + 2004-04-03 Theodore Ts'o * libuuid.3.in, uuid_clear.3.in, uuid_compare.3.in, uuid_copy.3.in, diff --git a/lib/uuid/Makefile.in b/lib/uuid/Makefile.in index ba9326a36..3c68eb23a 100644 --- a/lib/uuid/Makefile.in +++ b/lib/uuid/Makefile.in @@ -94,31 +94,31 @@ uuid_time: $(srcdir)/uuid_time.c $(DEPLIBUUID) $(LIBUUID) libuuid.3: $(DEP_SUBSTITUTE) $(srcdir)/libuuid.3.in - $(SUBSTITUTE) $(srcdir)/libuuid.3.in libuuid.3 + $(SUBSTITUTE_UPTIME) $(srcdir)/libuuid.3.in libuuid.3 uuid_clear.3: $(DEP_SUBSTITUTE) $(srcdir)/uuid_clear.3.in - $(SUBSTITUTE) $(srcdir)/uuid_clear.3.in uuid_clear.3 + $(SUBSTITUTE_UPTIME) $(srcdir)/uuid_clear.3.in uuid_clear.3 uuid_compare.3: $(DEP_SUBSTITUTE) $(srcdir)/uuid_compare.3.in - $(SUBSTITUTE) $(srcdir)/uuid_compare.3.in uuid_compare.3 + $(SUBSTITUTE_UPTIME) $(srcdir)/uuid_compare.3.in uuid_compare.3 uuid_copy.3: $(DEP_SUBSTITUTE) $(srcdir)/uuid_copy.3.in - $(SUBSTITUTE) $(srcdir)/uuid_copy.3.in uuid_copy.3 + $(SUBSTITUTE_UPTIME) $(srcdir)/uuid_copy.3.in uuid_copy.3 uuid_generate.3: $(DEP_SUBSTITUTE) $(srcdir)/uuid_generate.3.in - $(SUBSTITUTE) $(srcdir)/uuid_generate.3.in uuid_generate.3 + $(SUBSTITUTE_UPTIME) $(srcdir)/uuid_generate.3.in uuid_generate.3 uuid_is_null.3: $(DEP_SUBSTITUTE) $(srcdir)/uuid_is_null.3.in - $(SUBSTITUTE) $(srcdir)/uuid_is_null.3.in uuid_is_null.3 + $(SUBSTITUTE_UPTIME) $(srcdir)/uuid_is_null.3.in uuid_is_null.3 uuid_parse.3: $(DEP_SUBSTITUTE) $(srcdir)/uuid_parse.3.in - $(SUBSTITUTE) $(srcdir)/uuid_parse.3.in uuid_parse.3 + $(SUBSTITUTE_UPTIME) $(srcdir)/uuid_parse.3.in uuid_parse.3 uuid_time.3: $(DEP_SUBSTITUTE) $(srcdir)/uuid_time.3.in - $(SUBSTITUTE) $(srcdir)/uuid_time.3.in uuid_time.3 + $(SUBSTITUTE_UPTIME) $(srcdir)/uuid_time.3.in uuid_time.3 uuid_unparse.3: $(DEP_SUBSTITUTE) $(srcdir)/uuid_unparse.3.in - $(SUBSTITUTE) $(srcdir)/uuid_unparse.3.in uuid_unparse.3 + $(SUBSTITUTE_UPTIME) $(srcdir)/uuid_unparse.3.in uuid_unparse.3 installdirs:: $(top_srcdir)/mkinstalldirs $(DESTDIR)$(libdir) \ diff --git a/misc/ChangeLog b/misc/ChangeLog index 70d5e6cf0..c50c9cd58 100644 --- a/misc/ChangeLog +++ b/misc/ChangeLog @@ -1,3 +1,10 @@ +2004-04-03 Theodore Ts'o + + * Makefile.in: Update the modtime even if subst doesn't need to + update the man pages, to avoid always re-running + subst, especially since there are no dependencies on these + generated files. + 2004-03-21 Theodore Ts'o * blkid.c: Remove the partially implemented -p option (it never diff --git a/misc/Makefile.in b/misc/Makefile.in index 53d81a022..61176ef39 100644 --- a/misc/Makefile.in +++ b/misc/Makefile.in @@ -121,52 +121,52 @@ filefrag: $(FILEFRAG_OBJS) $(CC) $(ALL_LDFLAGS) -o filefrag $(FILEFRAG_OBJS) tune2fs.8: $(DEP_SUBSTITUTE) $(srcdir)/tune2fs.8.in - $(SUBSTITUTE) $(srcdir)/tune2fs.8.in tune2fs.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/tune2fs.8.in tune2fs.8 mklost+found.8: $(DEP_SUBSTITUTE) $(srcdir)/mklost+found.8.in - $(SUBSTITUTE) $(srcdir)/mklost+found.8.in mklost+found.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/mklost+found.8.in mklost+found.8 mke2fs.8: $(DEP_SUBSTITUTE) $(srcdir)/mke2fs.8.in - $(SUBSTITUTE) $(srcdir)/mke2fs.8.in mke2fs.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/mke2fs.8.in mke2fs.8 e2label.8: $(DEP_SUBSTITUTE) $(srcdir)/e2label.8.in - $(SUBSTITUTE) $(srcdir)/e2label.8.in e2label.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/e2label.8.in e2label.8 findfs.8: $(DEP_SUBSTITUTE) $(srcdir)/findfs.8.in - $(SUBSTITUTE) $(srcdir)/findfs.8.in findfs.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/findfs.8.in findfs.8 e2image.8: $(DEP_SUBSTITUTE) $(srcdir)/e2image.8.in - $(SUBSTITUTE) $(srcdir)/e2image.8.in e2image.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/e2image.8.in e2image.8 dumpe2fs.8: $(DEP_SUBSTITUTE) $(srcdir)/dumpe2fs.8.in - $(SUBSTITUTE) $(srcdir)/dumpe2fs.8.in dumpe2fs.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/dumpe2fs.8.in dumpe2fs.8 badblocks.8: $(DEP_SUBSTITUTE) $(srcdir)/badblocks.8.in - $(SUBSTITUTE) $(srcdir)/badblocks.8.in badblocks.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/badblocks.8.in badblocks.8 fsck.8: $(DEP_SUBSTITUTE) $(srcdir)/fsck.8.in - $(SUBSTITUTE) $(srcdir)/fsck.8.in fsck.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/fsck.8.in fsck.8 blkid.8: $(DEP_SUBSTITUTE) $(srcdir)/blkid.8.in - $(SUBSTITUTE) $(srcdir)/blkid.8.in blkid.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/blkid.8.in blkid.8 logsave.8: $(DEP_SUBSTITUTE) $(srcdir)/logsave.8.in - $(SUBSTITUTE) $(srcdir)/logsave.8.in logsave.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/logsave.8.in logsave.8 chattr.1: $(DEP_SUBSTITUTE) $(srcdir)/chattr.1.in - $(SUBSTITUTE) $(srcdir)/chattr.1.in chattr.1 + $(SUBSTITUTE_UPTIME) $(srcdir)/chattr.1.in chattr.1 lsattr.1: $(DEP_SUBSTITUTE) $(srcdir)/lsattr.1.in - $(SUBSTITUTE) $(srcdir)/lsattr.1.in lsattr.1 + $(SUBSTITUTE_UPTIME) $(srcdir)/lsattr.1.in lsattr.1 uuidgen.1: $(DEP_SUBSTITUTE) $(srcdir)/uuidgen.1.in - $(SUBSTITUTE) $(srcdir)/uuidgen.1.in uuidgen.1 + $(SUBSTITUTE_UPTIME) $(srcdir)/uuidgen.1.in uuidgen.1 blkid.1: $(DEP_SUBSTITUTE) $(srcdir)/blkid.1.in - $(SUBSTITUTE) $(srcdir)/blkid.1.in blkid.1 + $(SUBSTITUTE_UPTIME) $(srcdir)/blkid.1.in blkid.1 filefrag.8: $(DEP_SUBSTITUTE) $(srcdir)/filefrag.8.in - $(SUBSTITUTE) $(srcdir)/filefrag.8.in filefrag.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/filefrag.8.in filefrag.8 installdirs: $(top_srcdir)/mkinstalldirs $(DESTDIR)$(sbindir) \ diff --git a/resize/ChangeLog b/resize/ChangeLog index 217a8bc93..aa52dc0c4 100644 --- a/resize/ChangeLog +++ b/resize/ChangeLog @@ -1,3 +1,10 @@ +2004-04-03 Theodore Ts'o + + * Makefile.in: Update the modtime even if subst doesn't need to + update the resize2fs man page, to avoid always re-running + subst, especially since there are no dependencies on the + man page. + 2004-02-28 Theodore Ts'o * Release of E2fsprogs 1.35 diff --git a/resize/Makefile.in b/resize/Makefile.in index 2ea4979bc..c9dff22f2 100644 --- a/resize/Makefile.in +++ b/resize/Makefile.in @@ -44,11 +44,11 @@ resize2fs.static: $(RESIZE_OBJS) $(STATIC_DEPLIBS) $(RESIZE_OBJS) $(STATIC_LIBS) resize2fs.8: $(DEP_SUBSTITUTE) $(srcdir)/resize2fs.8.in - $(SUBSTITUTE) $(srcdir)/resize2fs.8.in resize2fs.8 + $(SUBSTITUTE_UPTIME) $(srcdir)/resize2fs.8.in resize2fs.8 test_extent: $(TEST_EXTENT_OBJS) $(CC) $(ALL_LDFLAGS) -o test_extent $(TEST_EXTENT_OBJS) $(LIBS) - + installdirs: $(top_srcdir)/mkinstalldirs $(DESTDIR)$(root_sbindir) \ $(DESTDIR)$(man8dir) @@ -85,7 +85,7 @@ check:: test_extent.out diff test_extent.out $(srcdir)/test_extent.in ; \ exit 1 ; \ fi - + clean: $(RM) -f $(PROGS) $(TEST_PROGS) $(MANPAGES) \#* *.s *.o *.a *~ core \ resize2fs.static test_extent.out @@ -116,7 +116,7 @@ $(top_srcdir)/.exclude-file: >> $(top_srcdir)/.exclude-file echo $(SRCROOT)/e2fsprogs-ALL-@E2FSPROGS_VERSION@.tar.gz \ >> $(top_srcdir)/.exclude-file - + source_tar_file: $(top_srcdir)/.exclude-file (cd $(top_srcdir)/..; a=$(SRCROOT); rm -f $$a ; ln -sf e2fsprogs $$a ; \ $(TAR) -c -h -v -f - \ diff --git a/util/ChangeLog b/util/ChangeLog index 662540352..ec2a01c0c 100644 --- a/util/ChangeLog +++ b/util/ChangeLog @@ -1,3 +1,8 @@ +2004-04-03 Theodore Ts'o + + * subst.c (main): Add new option to update the timestamp of the + generated file. + 2004-02-28 Theodore Ts'o * Release of E2fsprogs 1.35 diff --git a/util/subst.c b/util/subst.c index dff1848bc..0c618a868 100644 --- a/util/subst.c +++ b/util/subst.c @@ -11,6 +11,9 @@ #include #include #include +#include +#include +#include #ifdef HAVE_GETOPT_H #include @@ -289,7 +292,6 @@ static int compare_file(const char *outfn, const char *newfn) return retval; } - int main(int argc, char **argv) @@ -299,8 +301,11 @@ int main(int argc, char **argv) FILE *in, *out; char *outfn = NULL, *newfn = NULL; int verbose = 0; + int adjust_timestamp = 0; + struct stat stbuf; + struct utimbuf ut; - while ((c = getopt (argc, argv, "f:v")) != EOF) { + while ((c = getopt (argc, argv, "f:tv")) != EOF) { switch (c) { case 'f': in = fopen(optarg, "r"); @@ -311,6 +316,9 @@ int main(int argc, char **argv) parse_config_file(in); fclose(in); break; + case 't': + adjust_timestamp++; + break; case 'v': verbose++; break; @@ -361,6 +369,16 @@ int main(int argc, char **argv) if (compare_file(outfn, newfn)) { if (verbose) printf("No change, keeping %s.\n", outfn); + if (adjust_timestamp) { + if (stat(outfn, &stbuf) == 0) { + if (verbose) + printf("Updating modtime for %s\n", outfn); + ut.actime = stbuf.st_atime; + ut.modtime = time(0); + if (utime(outfn, &ut) < 0) + perror("utime"); + } + } unlink(newfn); } else { if (verbose)