diff options
author | Reinhard Tartler <siretart@tauware.de> | 2010-05-31 13:06:51 +0000 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2010-05-31 13:06:51 +0000 |
commit | fc038df32e43c94a23933f8e8ccef09c11c97cd7 (patch) | |
tree | ac920b7b692520b59e5242b5f1d967d1f9883adc | |
parent | 021054a1962769c1d231bfa9e9178961c5b75e30 (diff) | |
download | ffmpeg-fc038df32e43c94a23933f8e8ccef09c11c97cd7.tar.gz |
configure: improve temp file creation and cleanup
backport r17752 by mru
Originally committed as revision 23393 to svn://svn.ffmpeg.org/ffmpeg/branches/0.5
-rwxr-xr-x | configure | 41 |
1 files changed, 30 insertions, 11 deletions
@@ -261,7 +261,6 @@ Include the log file "$logfile" produced by configure as this will help solving the problem. EOF fi - rm -f $TMPC $TMPE $TMPH $TMPO $TMPS $TMPSH exit 1 } @@ -1358,13 +1357,36 @@ esac : ${TMPDIR:=$TMP} : ${TMPDIR:=/tmp} -TMPC="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c" -TMPE="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}${EXESUF}" -TMPH="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h" -TMPO="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o" -TMPS="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S" -TMPV="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.ver" -TMPSH="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.sh" + +if ! check_cmd type mktemp; then + # simple replacement for missing mktemp + # NOT SAFE FOR GENERAL USE + mktemp(){ + echo "${2%XXX*}.${HOSTNAME}.${UID}.$$" + } +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 TMPV .ver +tmpfile TMPSH .sh + +unset -f mktemp # make sure we can execute files in $TMPDIR cat > $TMPSH 2>> $logfile <<EOF @@ -1378,7 +1400,6 @@ variable to another directory and make sure that it is not mounted noexec. EOF die "Sanity test failed." fi -rm $TMPSH if $cc --version 2>/dev/null | grep -qi gcc; then cc_type=gcc @@ -2522,8 +2543,6 @@ cmp -s $TMPH config.h && echo "config.h is unchanged" || 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 if enabled source_path_used; then DIRS="\ |