Let's fix this now. Here is a one-line fix, which is simpler and cleaner than a multi-empty-file commit. My old fix mkdir -p `<lib/emptydirs` is a bashism I think, I've reworded it:
xargs mkdir -p <lib/emptydirs That will suffice to fix the problem for unix users at least. xargs might not be present, we can do it with only the shell; this might be best: while read d; do mkdir -p $d; done <lib/emptydirs Could you please add this fix to makemk.sh? I put it at the end of the following stanza which seems appropriate (patch below). # make sure we start off clean echo removing old libraries and binaries rm -f $PLAT/lib/*.a $PLAT/bin/* rm -f utils/cc/y.tab.? while read d; do mkdir -p $d; done <lib/emptydirs A general fix for hg/git/etc would be to keep a list of all directories in the RCS as a file .hg-dirs or .hg/dirs (but forbidden), and a post-update to create/remove them as needed. Is it best to talk about inferno on 9fans or should I use/Cc inferno-list? thanks, Sam --- makemk.sh.orig 2009-10-04 00:55:37.000000000 +1000 +++ makemk.sh 2009-10-04 00:56:10.000000000 +1000 @@ -42,6 +42,7 @@ echo removing old libraries and binaries rm -f $PLAT/lib/*.a $PLAT/bin/* rm -f utils/cc/y.tab.? +while read d; do mkdir -p $d; done <lib/emptydirs # libregexp cd $ROOT/utils/libregexp || error cannot find libregexp directory