View Ticket
Ticket UUID: 47edc4cb21e0add7eb7c78fac02ca1ff6ab01473
Title: Avoid unnecessary temporary files at build time
Status: Closed Type: Build Problem
Severity: Minor Priority: Immediate
Subsystem: Resolution: Rejected
Last Modified: 2017-01-17 15:44:50
Version Found In:
User Comments:
anonymous added on 2017-01-17 11:00:04: (text/x-fossil-plain)
I suggest the following change, to avoid unnecessary temporary files at build time.

Index: Makefile.in
==================================================================
--- Makefile.in
+++ Makefile.in
@@ -36,14 +36,12 @@

 # Create a C-source-ified version of the script resources
 # for TclTLS so that we only need a single file to enable
 # this extension
 tls.tcl.h: @srcdir@/tls.tcl Makefile
-       od -A n -v -t xC < '@srcdir@/tls.tcl' > tls.tcl.h.new.1
-       sed 's@  *@@g;s@..@0x&, @g' < tls.tcl.h.new.1 > tls.tcl.h.new.2
-       rm -f tls.tcl.h.new.1
-       mv tls.tcl.h.new.2 tls.tcl.h
+       od -A n -v -t xC < '@srcdir@/tls.tcl' | \
+       sed 's@  *@@g;s@..@0x&, @g' > tls.tcl.h

 # Create default DH parameters
 dh_params.h: @srcdir@/gen_dh_params Makefile
        @srcdir@/gen_dh_params @GEN_DH_PARAMS_ARGS@ > dh_params.h.new
        mv dh_params.h.new dh_params.h

rkeene added on 2017-01-17 14:42:59: (text/html)
The reason it's done this way is because the exit status is only of the last command in the pipeline.

Your solution will only fail if 'sed' fails, not if 'od' fails.  The result will appear to be successful but be a zero byte file.