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

Reply via email to