main repeated 'make maintainer-clean' not fail
[ghc-hetmet.git] / boot-pkgs
diff --git a/boot-pkgs b/boot-pkgs
new file mode 100644 (file)
index 0000000..4892b52
--- /dev/null
+++ b/boot-pkgs
@@ -0,0 +1,39 @@
+#! /bin/sh
+set -e
+
+libraries=
+
+for f in libraries/*; do
+  pkgs=$f/ghc-packages
+  if test -f $pkgs; then
+    for p in `cat $pkgs`; do
+      libraries="$libraries $f/$p"
+    done
+  else
+    libraries="$libraries $f"
+  fi
+done
+
+for f in $libraries; do
+   dir=`basename $f`
+   cabals=`echo $f/*.cabal`
+   if test -f $cabals; then
+       echo "Creating $f/ghc.mk"
+       rm -f $f/ghc.mk
+       pkg=`echo "$cabals" | sed -e 's#.*/##' -e 's#\.cabal$##'`
+       if test -f $f/ghc-stage; then
+           stage=`cat $f/ghc-stage`
+       else
+           stage=1
+       fi
+       top=`echo $f | sed 's#[^/]\+#..#g'`
+       echo "${f}_PACKAGE = ${pkg}" >> $f/ghc.mk
+       echo "${f}_dist-install_GROUP = libraries" >> $f/ghc.mk
+       echo "\$(eval \$(call build-package,${f},dist-install,${stage}))" >> $f/ghc.mk
+       rm -f $f/GNUmakefile
+       echo "Creating $f/GNUmakefile"
+       echo "dir = ${f}" >> $f/GNUmakefile
+       echo "TOP = ${top}" >> $f/GNUmakefile
+       echo "include \$(TOP)/mk/sub-makefile.mk" >> $f/GNUmakefile
+   fi
+done