[build] Allow safe concurrent builds of .iso, .liso and .sdsk targets
authorMichael Brown <mcb30@etherboot.org>
Sun, 2 Aug 2009 10:17:02 +0000 (11:17 +0100)
committerMichael Brown <mcb30@etherboot.org>
Sun, 2 Aug 2009 10:17:02 +0000 (11:17 +0100)
The geniso, genliso and gensdsk scripts contain hard-coded temporary
directory names, and so could potentially collide with each other when
run as part of a concurrent build (e.g. "make -j 4").

Fix by using mktemp to generate suitable temporary directory names.

src/util/geniso
src/util/genliso
src/util/gensdsk

index d7ddbd2..57e4747 100755 (executable)
@@ -22,8 +22,7 @@ then
 fi
 out=$1
 shift
-dir=bin/iso.dir
-mkdir -p $dir
+dir=`mktemp -d bin/iso.dir.XXXXXX`
 cfg=$dir/isolinux.cfg
 cp -p $isolinux_bin $dir
 cat > $cfg <<EOF
index ac9924a..aa51785 100755 (executable)
@@ -26,13 +26,12 @@ esac
 out=$1
 shift
 
-dir=bin/liso.dir
-mkdir -p $dir
+dir=`mktemp -d bin/liso.dir.XXXXXX`
 
 img=$dir/boot.img
 mformat -f 1440 -C -i $img ::
 
-cfg=bin/syslinux.cfg
+cfg=$dir/syslinux.cfg
 cat > $cfg <<EOF
 # These default options can be changed in the genliso script
 SAY gPXE ISO boot image generated by genliso
index 68c339c..787dfa2 100644 (file)
@@ -24,11 +24,10 @@ Mtools\ version\ 3.9.9*|Mtools\ version\ 3.9.1[0-9]*|Mtools\ version\ 4.*)
 esac
 img=$1
 shift
-dir=bin/sdsk.dir
-mkdir -p $dir
+dir=`mktemp -d bin/sdsk.dir.XXXXXX`
 
 mformat -f 1440 -C -i $img ::
-cfg=bin/syslinux.cfg
+cfg=$dir/syslinux.cfg
 cat > $cfg <<EOF
 
 # These default options can be changed in the gensdsk script