@@ -41,9 +41,26 @@ make_dir() {
41
41
fi
42
42
}
43
43
44
- copy () {
45
- msg " cp $1 $2 "
46
- cp $1 $2
44
+ copy_if_changed () {
45
+ if cmp -s $1 $2
46
+ then
47
+ msg " leaving $2 unchanged"
48
+ else
49
+ msg " cp $1 $2 "
50
+ cp $1 $2
51
+ chmod u-w $1 # make copied artifact read-only
52
+ fi
53
+ }
54
+
55
+ move_if_changed () {
56
+ if cmp -s $1 $2
57
+ then
58
+ msg " leaving $2 unchanged"
59
+ else
60
+ msg " mv $1 $2 "
61
+ mv $1 $2
62
+ chmod u-w $1 # make moved artifact read-only
63
+ fi
47
64
}
48
65
49
66
putvar () {
@@ -56,7 +73,7 @@ putvar() {
56
73
else
57
74
printf " configure: %-20s := %s\n" $1 " $T "
58
75
fi
59
- printf " %-20s := %s\n" $1 " $T " >> config.mk
76
+ printf " %-20s := %s\n" $1 " $T " >> config.tmp
60
77
}
61
78
62
79
probe () {
@@ -158,6 +175,7 @@ opt() {
158
175
159
176
160
177
msg " looking for configure programs"
178
+ need_cmd cmp
161
179
need_cmd mkdir
162
180
need_cmd printf
163
181
need_cmd cut
250
268
echo " Options:"
251
269
echo " "
252
270
else
253
- msg " recreating config.mk "
254
- echo ' ' > config.mk
271
+ msg " recreating config.tmp "
272
+ echo ' ' > config.tmp
255
273
256
274
step_msg " processing $CFG_SELF args"
257
275
fi
@@ -665,11 +683,12 @@ done
665
683
666
684
# Munge any paths that appear in config.mk back to posix-y
667
685
perl -i.bak -p -e ' s@ ([a-zA-Z]):[/\\]@ /\1/@go;' \
668
- -e ' s@\\@/@go;' config.mk
669
- rm -f config.mk .bak
686
+ -e ' s@\\@/@go;' config.tmp
687
+ rm -f config.tmp .bak
670
688
671
689
msg
672
- copy ${CFG_SRC_DIR} Makefile.in ./Makefile
673
- chmod u-w Makefile # it is generated, make it read-only
690
+ copy_if_changed ${CFG_SRC_DIR} Makefile.in ./Makefile
691
+ move_if_changed config.tmp config.mk
692
+ rm -f config.tmp
674
693
675
694
step_msg " complete"
0 commit comments