#!/bin/sh

#  Configuration Script for the Macintosh
#
#  This script builds a source tree suitable for export to the Macintosh
#  for compilation under the CodeWarrior development environment.
#
#  We don't attempt anything fancy here.  We do just enough to
#  produce compilable source code.  Help files etc must be copied
#  bu hand.


R_HOME=`pwd`
M_HOME=`pwd`/Macintosh

# Remove any prior version

echo "Removing previous source tree"

rm -rf ${M_HOME}

# (1) Create the directory structure

echo "Creating directory structure"

mkdir ${M_HOME}
mkdir ${M_HOME}/library
mkdir ${M_HOME}/library/base
mkdir ${M_HOME}/library/base/R
mkdir ${M_HOME}/src
mkdir ${M_HOME}/src/include
mkdir ${M_HOME}/src/appl
mkdir ${M_HOME}/src/main
mkdir ${M_HOME}/src/nmath
mkdir ${M_HOME}/src/f2clib
mkdir ${M_HOME}/src/regex

# (2) Create the basic include files needed for compilation

echo "Installing include files"

cp ${R_HOME}/src/include/*.h ${M_HOME}/src/include
cp ${R_HOME}/src/macintosh/Platform.h ${M_HOME}/src/include

# This code assembles the table of statically loaded C and Fortran
# code which is to be accessed via .C and .Fortran calls.

sed '
/^#/d
/Rsock/d
s/F77_SUBROUTINE(\(.*\))/int \1_();/
s/C_FUNCTION(\(.*\))/int \1();/
' ${R_HOME}/src/appl/ROUTINES > ${M_HOME}/src/include/FFDecl.h
sed '
/^#/d
/Rsock/d
s/F77_SUBROUTINE(\(.*\))/	"\1_",	\1_,/
s/C_FUNCTION(\(.*\))/	"\1",	\1,/
' ${R_HOME}/src/appl/ROUTINES > ${M_HOME}/src/include/FFTab.h

# (3) C and Fortran Code

echo "Copying C and Fortran code"

# (3a) C Versions of Application Code

echo "Converting Fortran with f2c"

cp ${R_HOME}/src/appl/*.[chf] ${M_HOME}/src/appl
cd ${M_HOME}/src/appl
f2c *.f 2> /dev/null
rm *.f
cd ${R_HOME}

cp ${R_HOME}/src/main/*.[chy] ${M_HOME}/src/main
cp ${R_HOME}/src/nmath/*.[chy] ${M_HOME}/src/nmath
cp ${R_HOME}/src/regex/*.[chy] ${M_HOME}/src/regex
cp ${R_HOME}/src/f2clib/*.[chy] ${M_HOME}/src/f2clib
cp ${R_HOME}/src/main/*.[chy] ${M_HOME}/src/main
cd ${M_HOME}/src/main
byacc gram.y
mv y.tab.c gram.c
rm gram.y

# (4) Interpreted Functions

echo "Interpreted function libraries"

cd ${R_HOME}/src/library/base/R
cat `ls *.R | sed '/system.*/d'` system.mac.R \
    > ${M_HOME}/library/base/R/base
cat ${R_HOME}/src/library/profile/Common.R \
    ${R_HOME}/src/library/profile/Rprofile.mac \
    > ${M_HOME}/library/base/R/Rprofile

# (5) Manual entries etc (just grab the unix ones for now)

echo "Manual entries, examples and data"

cd ${R_HOME}
cp -R library/LibIndex Macintosh/library
cp -R library/base/INDEX Macintosh/library/base
cp -R library/base/data Macintosh/library/base
cp -R library/base/R-ex Macintosh/library/base
mkdir Macintosh/library/base/help
for i in  `ls ${R_HOME}/library/base/help`
do
  sed 's/.//g' library/base/help/$i > Macintosh/library/base/help/$i
done

# (6) Demos

echo "Demo scripts"

mkdir Macintosh/demos
cp -R demos/[a-z]* Macintosh/demos