configure: improve temp file creation and cleanup

Originally committed as revision 17752 to svn://svn.ffmpeg.org/ffmpeg/trunk
release/0.6
Måns Rullgård 16 years ago
parent 2e78513cee
commit 54460a8347
  1. 37
      configure

37
configure vendored

@ -257,7 +257,6 @@ Include the log file "$logfile" produced by configure as this will help
solving the problem. solving the problem.
EOF EOF
fi fi
rm -f $TMPC $TMPE $TMPH $TMPO $TMPS $TMPSH
exit 1 exit 1
} }
@ -1342,12 +1341,33 @@ esac
: ${TMPDIR:=$TMP} : ${TMPDIR:=$TMP}
: ${TMPDIR:=/tmp} : ${TMPDIR:=/tmp}
TMPC="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c" if ! check_cmd type mktemp; then
TMPE="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}${EXESUF}" # simple replacement for missing mktemp
TMPH="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h" # NOT SAFE FOR GENERAL USE
TMPO="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o" mktemp(){
TMPS="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S" echo "${2%XXX*}.${HOSTNAME}.${UID}.$$"
TMPSH="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.sh" }
fi
tmpfile(){
tmp=$(mktemp -u "${TMPDIR}/ffconf.XXXXXXXX")$2 &&
(set -C; exec > $tmp) 2>/dev/null ||
die "Unable to create temoporary file in $TMPDIR."
append TMPFILES $tmp
eval $1=$tmp
}
trap 'rm -f -- $TMPFILES' EXIT
trap exit HUP INT TERM
tmpfile TMPC .c
tmpfile TMPE $EXESUF
tmpfile TMPH .h
tmpfile TMPO .o
tmpfile TMPS .S
tmpfile TMPSH .sh
unset -f mktemp
# make sure we can execute files in $TMPDIR # make sure we can execute files in $TMPDIR
cat > $TMPSH 2>> $logfile <<EOF cat > $TMPSH 2>> $logfile <<EOF
@ -1361,7 +1381,6 @@ variable to another directory and make sure that it is not mounted noexec.
EOF EOF
die "Sanity test failed." die "Sanity test failed."
fi fi
rm $TMPSH
if $cc --version 2>/dev/null | grep -qi gcc; then if $cc --version 2>/dev/null | grep -qi gcc; then
cc_type=gcc cc_type=gcc
@ -2484,8 +2503,6 @@ cmp -s $TMPH config.h &&
echo "config.h is unchanged" || echo "config.h is unchanged" ||
mv -f $TMPH config.h mv -f $TMPH config.h
rm -f $TMPC $TMPE $TMPH $TMPO $TMPS $TMPSH
# build tree in object directory if source path is different from current one # build tree in object directory if source path is different from current one
if enabled source_path_used; then if enabled source_path_used; then
DIRS="\ DIRS="\

Loading…
Cancel
Save