#!/bin/sh

# This shell script ensures that necessary symbolic links in the Odin-directory
# exist. If they do not, the script will create them. It will also try to call
# autoconf to create the configure-scripts. This will only be done if autoconf
# exists in the path and the version is new enough for Eli.

echo Symlinking Files in Odin-Directory

if test ! -f  ./Odin/pkg/dg/inc/DG_Version.h; then
ln -s  ../../odin/inc/DG_Version.h ./Odin/pkg/dg/inc/DG_Version.h
fi

if test ! -f  ./Odin/pkg/dg/inc/DPType_.h; then
ln -s  ../../odin/inc/DPType_.h ./Odin/pkg/dg/inc/DPType_.h
fi

if test ! -f  ./Odin/pkg/dg/inc/DrvPth.h; then
ln -s  ../../odin/inc/DrvPth.h ./Odin/pkg/dg/inc/DrvPth.h
fi

if test ! -f  ./Odin/pkg/dg/inc/FKind_.h; then
ln -s  ../../odin/inc/FKind_.h ./Odin/pkg/dg/inc/FKind_.h
fi

if test ! -f  ./Odin/pkg/dg/inc/FTClass_.h; then
ln -s  ../../odin/inc/FTClass_.h ./Odin/pkg/dg/inc/FTClass_.h
fi

if test ! -f  ./Odin/pkg/dg/inc/GMC.h; then
ln -s  ../../odin/inc/GMC.h ./Odin/pkg/dg/inc/GMC.h
fi

if test ! -f  ./Odin/pkg/dg/inc/IOTyp.h; then
ln -s  ../../odin/inc/IOTyp.h ./Odin/pkg/dg/inc/IOTyp.h
fi

if test ! -f  ./Odin/pkg/dg/inc/ISKind_.h; then
ln -s  ../../odin/inc/ISKind_.h ./Odin/pkg/dg/inc/ISKind_.h
fi

if test ! -f  ./Odin/pkg/dg/inc/InpKind_.h; then
ln -s  ../../odin/inc/InpKind_.h ./Odin/pkg/dg/inc/InpKind_.h
fi

if test ! -f  ./Odin/pkg/dg/inc/Lvl.h; then
ln -s  ../../odin/inc/Lvl.h ./Odin/pkg/dg/inc/Lvl.h
fi

if test ! -f  ./Odin/pkg/dg/inc/Macro.h; then
ln -s  ../../odin/inc/Macro.h ./Odin/pkg/dg/inc/Macro.h
fi

if test ! -f  ./Odin/pkg/dg/inc/PType_.h; then
ln -s  ../../odin/inc/PType_.h ./Odin/pkg/dg/inc/PType_.h
fi

if test ! -f  ./Odin/pkg/dg/inc/Pos.h; then
ln -s  ../../odin/inc/Pos.h ./Odin/pkg/dg/inc/Pos.h
fi

if test ! -f  ./Odin/pkg/dg/inc/Str.h; then
ln -s  ../../odin/inc/Str.h ./Odin/pkg/dg/inc/Str.h
fi

if test ! -f  ./Odin/pkg/dg/inc/System.hh; then
ln -s  ../../odin/inc/System.hh ./Odin/pkg/dg/inc/System.hh
fi

if test ! -f  ./Odin/pkg/dg/inc/TClass_.h; then
ln -s  ../../odin/inc/TClass_.h ./Odin/pkg/dg/inc/TClass_.h
fi

if test ! -f  ./Odin/pkg/dg/if-ft.c; then
ln -s  ../odin/if-ft.c ./Odin/pkg/dg/if-ft.c
fi

if test ! -f  ./Odin/pkg/dg/if-lvl.c; then
ln -s  ../odin/if-lvl.c ./Odin/pkg/dg/if-lvl.c
fi

if test ! -f  ./Odin/pkg/dg/if-drvpth.c; then
ln -s  ../odin/if-drvpth.c ./Odin/pkg/dg/if-drvpth.c
fi

if test ! -f  ./Odin/pkg/odin/ipcgen/inc/GMC.h; then
ln -s  ../../../odin/inc/GMC.h ./Odin/pkg/odin/ipcgen/inc/GMC.h
fi

if test ! -f  ./Odin/pkg/odin/ipcgen/inc/Str.h; then
ln -s  ../../../odin/inc/Str.h ./Odin/pkg/odin/ipcgen/inc/Str.h
fi

if test ! -f  ./Odin/pkg/odin/ipcgen/inc/System.hh; then
ln -s  ../../../odin/inc/System.hh ./Odin/pkg/odin/ipcgen/inc/System.hh
fi

if test ! -d  ./Odin/pkg/odin/boot/inc; then
ln -s  ../inc ./Odin/pkg/odin/boot/inc
fi

if test ! -f  ./Odin/pkg/tregrm/inc/GMC.h; then
ln -s  ../../odin/inc/GMC.h ./Odin/pkg/tregrm/inc/GMC.h
fi

if test ! -f  ./Odin/pkg/tregrm/inc/Str.h; then
ln -s  ../../odin/inc/Str.h ./Odin/pkg/tregrm/inc/Str.h
fi

if test ! -f  ./Odin/pkg/tregrm/inc/System.hh; then
ln -s  ../../odin/inc/System.hh ./Odin/pkg/tregrm/inc/System.hh
fi

echo Calling Autoconf

version='0.00'
for p in `echo $PATH | sed 's/:/ /g'` 
do	if test -x $p/autoconf; then
		version=`$p/autoconf --version`
		break
	fi
done

no=`expr "$version" : '.*[0-9]\.\([0-9][0-9]\)'`
if test $no -lt 12; then 
	echo "Autoconf not found or version too old"
else
	autoconf
	(cd ./Eli; autoconf -l ..)
	(cd ./Eli/pkg/cpp/gnu_cpp; autoconf)
	(cd ./Eli/pkg/eli/ofiles; autoheader; autoconf)
	(cd ./Eli/pkg/skeleton/gnu_sed; autoconf)
	(cd ./Odin/pkg/config; autoconf)
fi
