#! /bin/sh set -e libraries= tarred=`ls -1 libraries/tarballs | sed "s/-[0-9.]*\(-snapshot\)\{0,1\}.tar.gz//"` for p in $tarred do libraries="$libraries libraries/$p" if [ -d "libraries/$p/_darcs" ] then echo Ignoring libraries/$p as it looks like a darcs checkout else tarball=libraries/tarballs/$p-*.tar.gz stamp="libraries/stamp/$p" if [ ! -d "libraries/$p" ] || [ ! -f "$stamp" ] || [ "libraries/stamp/$p" -ot $tarball ] then rm -rf "libraries/$p" mkdir "libraries/$p" ( cd "libraries/$p" tar -zxf ../../$tarball mv */* . ) touch "$stamp" fi fi done 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