On Fri, Jan 25, 2019 at 7:55 PM Tim Hockin <thoc...@google.com> wrote: > > Fair point, of course. > > I care because Kubernetes and it's family of projects have Makefiles to > encapsulate trickier aspects of building, including code generation. > Compiling kubernetes takes a LONG time. It would be nice to avoid > re-triggering secondary actions when the primary artifacts have not changed. > > Could I checksum? Sure, but then I am writing a custom builder, so I might > as well use Bazel (which has other issues). > > It's not a huge deal, today, but I really wanted to understand it. It just > seemed broken.
While understanding that the approach is second best, Makefiles are fully able to handle files that have the same contents but updated timestamps. You separate the file you create and the file you use. Then you write a Makefile target like progtouse: stmp-progtouse; @true # Yes, the "; @true" is important. stmp-progtouse: dependencies to build progtobuild # commands to build progtobuild $(SHELL) mvifdiff.sh progtobuild progtouse echo >$@ The shell script mvifdiff.sh is simply if cmp -s "$1" "$2" ; then rm -f -- "$1" else mv -f -- "$1" "$2" fi Then everything else depends on, and uses, progtouse. Remember to remove stmp-progtouse in your clean targets. Ian -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.