#!/bin/bash

function check_okay {
	if [ $? -ne 0 ]
	then
		echo
		pwd
		echo "./build_and_test FAILED"
		echo
		exit 1
	fi
}

function enum_procs {
    if [ -n "$NPROCS" ]; then
	echo $NPROCS
    else
	case `uname -s` in
	    Linux)
		if [ -r /proc/cpuinfo ]; then
		    grep -c processor /proc/cpuinfo
		else
		    echo 1
		fi
		;;
	    Darwin)
		sysctl hw.ncpu | awk '{print $2}'
		;;
	    *)
	    echo 1
	    ;;
	esac
    fi
}

if [ ! -r crlibm ]
then
  rm -f crlibm-1.0beta4.tar.gz_save
  cp crlibm-1.0beta4.tar.gz crlibm-1.0beta4.tar.gz_save
  gunzip crlibm-1.0beta4.tar.gz
  tar -xvf crlibm-1.0beta4.tar
  mv crlibm-1.0beta4 crlibm
  cd crlibm
  make -f ../makefile_crlibm 
  #./configure
  make -j$(enum_procs)
  check_okay
  cd ..
  mv crlibm-1.0beta4.tar.gz_save crlibm-1.0beta4.tar.gz
  rm -f crlibm-1.0beta4.tar
  cp crlibm/crlibm.h ../include
  check_okay
  cp crlibm/libcrlibm*.a ../lib
  check_okay
fi

if [ ! -f ../skip_build ]
then
./mk
check_okay
cd test
./mk
check_okay
cd ..
fi

if [ ! -f ../skip_test ]
then
./ck
check_okay
cd test
./ck
check_okay
cd ..
fi
