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