#!/bin/sh
#
# %CopyrightBegin%
# 
# Copyright Ericsson AB 1996-2009. All Rights Reserved.
# 
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
# 
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
# 
# %CopyrightEnd%
#
#  Patch $ERL_ROOT/emulator/obj/Makefile.dist & make
#
#
start_option=query
while [ $# -ne 0 ]; do
	case $1 in
		-minimal) start_option=minimal ;;
		-sasl)    start_option=sasl    ;;
		*)        ERL_ROOT=$1          ;;
	esac
	shift
done

if [ -z "$ERL_ROOT" -o ! -d "$ERL_ROOT" ]
then
	echo "Install: need ERL_ROOT directory as argument"
	exit 1
fi

if [ `echo $ERL_ROOT | awk '{ print substr($1,1,1) }'` != "/" ]
then
	echo "Install: need an absolute path to ERL_ROOT"
	exit 1
fi

if [ ! -d $ERL_ROOT/erts-5.7.2/bin ]
then
	echo "Install: The directory $ERL_ROOT/erts-5.7.2/bin does not exist"
	echo "         Bad location or erts module not un-tared"
	exit 1
fi

if [ -d $ERL_ROOT/erts-5.7.2/obj ]
then
	cd $ERL_ROOT/erts-5.7.2/obj
	sed -e "s;%FINAL_ROOTDIR%;$ERL_ROOT;" Makefile.src > Makefile
fi

if [ ! -d $ERL_ROOT/bin ]
then
        mkdir $ERL_ROOT/bin
fi

#
# Fetch target system.
#
SYS=`(uname -s) 2>/dev/null` || SYS=unknown
REL=`(uname -r) 2>/dev/null` || REL=unknown
case $SYS:$REL in
	        SunOS:5.*)
	                TARGET=sunos5 ;;
	        Linux:*)
	                TARGET=linux ;;
	        *)
	                TARGET="" ;;
esac

cd $ERL_ROOT/erts-5.7.2/bin

sed -e "s;%FINAL_ROOTDIR%;$ERL_ROOT;" erl.src > erl
chmod 755 erl

#
# Create start file for embedded system use,
#
(cd $ERL_ROOT/erts-5.7.2/bin;
  sed -e "s;%FINAL_ROOTDIR%;$ERL_ROOT;" start.src > start;
  chmod 755 start)

cd $ERL_ROOT/bin

cp -p $ERL_ROOT/erts-5.7.2/bin/erl .
cp -p $ERL_ROOT/erts-5.7.2/bin/erlc .
cp -p $ERL_ROOT/erts-5.7.2/bin/dialyzer .
cp -p $ERL_ROOT/erts-5.7.2/bin/typer .
cp -p $ERL_ROOT/erts-5.7.2/bin/escript .

#
# Set a soft link to epmd
# This should not be done for an embedded system!
#

# Remove old links first.
if [ -h epmd ]; then
  /bin/rm -f epmd
fi

ln -s ../erts-5.7.2/bin/epmd epmd

cp -p $ERL_ROOT/erts-5.7.2/bin/run_erl .
cp -p $ERL_ROOT/erts-5.7.2/bin/to_erl .
cp -p $ERL_ROOT/erts-5.7.2/bin/start .
sed -e "s;%EMU%;beam;" $ERL_ROOT/erts-5.7.2/bin/start_erl.src > start_erl
chmod 755 start_erl
echo ""

echo 5.7.2 R13B01 > $ERL_ROOT/releases/start_erl.data
sed -e "s;%ERL_ROOT%;$ERL_ROOT;" $ERL_ROOT/releases/RELEASES.src > $ERL_ROOT/releases/RELEASES

if [ "$start_option" = "query" ]
then
    echo "Do you want to use a minimal system startup"
    echo "instead of the SASL startup? (y/n) [n]: " | tr -d '\012'
    read reply
    case $reply in
    [Yy]*)
	start_option=minimal ;;
    *)
	start_option=sasl ;;
    esac
fi

case $start_option in
    minimal)
	Name=start_clean ;;
    sasl)
	Name=start_sasl  ;;
    *)
	Name=start_sasl  ;;
esac

cp -p ../releases/R13B01/start_*.boot .
cp -p $Name.boot start.boot
cp -p ../releases/R13B01/$Name.script start.script

#
# We always run ranlib unless Solaris/SunOS 5
# but ignore failures.
#
if [ "X$TARGET" != "Xsunos5" -a -d $ERL_ROOT/usr/lib ]; then 
    cd $ERL_ROOT/usr/lib
    for library in lib*.a
    do
	(ranlib $library) > /dev/null 2>&1
    done
fi


#
# Fixing the man pages
#

if [ -d $ERL_ROOT/man ]
then
    cd $ERL_ROOT
    ./misc/format_man_pages $ERL_ROOT
fi


