#!/bin/sh -e
# Public domain.

umask 022
test -d package || { echo 'Wrong working directory.'; exit 100; }
test -d src || { echo 'Wrong working directory.'; exit 100; }
test -d conf-compile || { echo 'Wrong working directory.'; exit 100; }

here=`pwd`

mkdir -p compile/export
echo 'Linking ./src into ./compile...'
for i in `ls src` ; do
  if test -d "src/$i" ; then
    mkdir -p "compile/$i"
    for j in `ls src/$i` ; do
      test -r "compile/$i/$j" || ln -s "../../src/$i/$j" "compile/$i"
    done
  else
    test -r "compile/$i" || ln -s "../src/$i" compile
  fi
done
echo

echo 'Importing ./conf-compile files into the build tree...'
for i in `ls -1 conf-compile | grep conf-` ; do
  rm -f "compile/export/$i"
  ln -s "../../conf-compile/$i" compile/export
done
test -r compile/export/conf-sp_root || echo > compile/export/conf-sp_root
test -r compile/export/conf-home || echo `cat compile/export/conf-sp_root`/package/`cat package/category`/`cat package/name` > compile/export/conf-home
echo

test -r conf-compile/import &&
{
  echo 'Importing external files...'
  spr=`cat compile/export/conf-sp_root`
  for i in `sed "s|\\$SP_ROOT|$spr|" < conf-compile/import` ; do
    if test -d "$i" ; then
      for j in `ls "$i"` ; do
        rm -f "compile/export/$j"
        echo "Importing $i/$j"
        ln -s "$i/$j" compile/export
      done
    else
      echo "Wrong import directory: $i"
      exit 100
    fi
  done
  echo
} || true

echo 'Linking include files...'
for i in sys `cat package/subsystems` ; do
  for j in `cat "src/$i/INCLUDE"` ; do
    test -r "compile/export/$j" || ln -s "../$i/$j" compile/export
  done
done
echo
