The R Project SVN R

Rev

Rev 3665 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

#!/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.


RHOME=`pwd`
MHOME=`pwd`/Macintosh

# Remove any prior version

echo "Removing previous source tree"

rm -rf $MHOME

# (1) Create the directory structure

echo "Creating directory structure"

mkdir $MHOME
mkdir $MHOME/library
mkdir $MHOME/library/base
mkdir $MHOME/library/base/R
mkdir $MHOME/src
mkdir $MHOME/src/include
mkdir $MHOME/src/appl
mkdir $MHOME/src/main
mkdir $MHOME/src/nmath
mkdir $MHOME/src/f2clib
mkdir $MHOME/src/regex

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

echo "Installing include files"

cp $RHOME/src/include/*.h $MHOME/src/include
cp $RHOME/src/macintosh/Platform.h $MHOME/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();/
' $RHOME/src/appl/ROUTINES > $MHOME/src/include/FFDecl.h
sed '
/^#/d
/Rsock/d
s/F77_SUBROUTINE(\(.*\))/   "\1_",  \1_,/
s/C_FUNCTION(\(.*\))/   "\1",   \1,/
' $RHOME/src/appl/ROUTINES > $MHOME/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 $RHOME/src/appl/*.[chf] $MHOME/src/appl
cd $MHOME/src/appl
f2c *.f 2> /dev/null
rm *.f
cd $RHOME

cp $RHOME/src/main/*.[chy] $MHOME/src/main
cp $RHOME/src/nmath/*.[chy] $MHOME/src/nmath
cp $RHOME/src/regex/*.[chy] $MHOME/src/regex
cp $RHOME/src/f2clib/*.[chy] $MHOME/src/f2clib
cp $RHOME/src/main/*.[chy] $MHOME/src/main
cd $MHOME/src/main
byacc gram.y
mv y.tab.c gram.c
rm gram.y

# (4) Interpreted Functions

echo "Interpreted function libraries"

cd $RHOME/src/library/base/R
cat `ls *.R | sed '/system.*/d'` system.mac.R > $MHOME/library/base/R/base
cat $RHOME/src/library/profile/Common.R \
    $RHOME/src/library/profile/Rprofile.mac >  $MHOME/library/base/R/Rprofile

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

echo "Manual entries, examples and data"

cd $RHOME
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 $RHOME/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