#!/bin/bash
#Small wrapper to deal with compilation of the compiler and the stdlib.


RUN_DIR=`pwd`


SCRIPT_DIR=$RUN_DIR/`dirname $0`

COMPILER_DIR=$SCRIPT_DIR/compiler
COMPILER=heptc.byte
COMPILER_DEBUG=heptc.d.byte
LIB_DIR=$SCRIPT_DIR/lib

#the symlink
HEPTC=$COMPILER_DIR/$COMPILER
HEPTC_DEBUG=$COMPILER_DIR/$COMPILER_DEBUG

#compile the compiler
if [ ! -x $HEPTC ]
then
	if [ -x $HEPTC_DEBUG ]
	then
		#use the debug
		HEPTC=$HEPTC_DEBUG
	else
		cd $COMPILER_DIR
		ocamlbuild -j 0 $COMPILER
		cd -
	fi
fi

#compile the stdlib
if [ ! -e $LIB_DIR/pervasives.epci ] || [ $HEPTC -nt $LIB_DIR/pervasives.epci ]
then
	cd $LIB_DIR
	echo "Recompile pervasives.epci"
	$HEPTC -nopervasives pervasives.epi
	cd -
fi

#call the compiler with the passed arguments.
cd $RUN_DIR
$HEPTC -stdlib $LIB_DIR "$@"