I've modified the "$RHOME/bin/R" and "$RHOME/cmd/filename" so that you can use the same directories for multiple machines. That is, machines running various flavors of UNIX can access the same directories. The modified structure adds the directories $RHOME/bin/$OSTYPE/ $RHOME/lib/$OSTYPE/ to hold the machine specific binaries. For instance, here the $RHOME directory contains two subdirectories, $RHOME/bin/solaris/ $RHOME/bin/sunos4/ which each hold the appropriate R.binary file. These two modified functions assume that the environment variable $OSTYPE is appropriately set, as is done automatically by the shell tcsh. If it is not set, the directory names collapse to the original values, $RHOME/bin/ and $RHOME/lib/ To use them, create the approprate directories and place the correct binaries therein. ( Note that the makefiles will not do this automatically!) Then replace $RHOME/bin/R and $RHOME/cmd/filename with the modified ones. ------------------------------------------------------------------------------- Gregory R. Warnes | It is high time that the ideal of success warnes at biostat.washington.edu | be replaced by the ideal of service. | Albert Einstein ------------------------------------------------------------------------------- -------------- next part -------------- #!/bin/sh # Shell wrapper for R executable. # Just sets a few environment items RHOME=/biostat/server0/src/biostat/gnu/R/R-0.49 export RHOME if [ "$1" = "SHLIB" ] then shift exec sh $RHOME/etc/SHLIB $* fi if [ "$1" = "COMPILE" ] then shift exec sh $RHOME/etc/COMPILE $* fi if [ "$1" = -xxgdb ] then shift DEBUGGER=xxgdb fi # Default Printer Paper Size # Choose one of the following # R_PAPERSIZE="a4" # R_PAPERSIZE="letter" # R_PAPERSIZE="none" R_PAPERSIZE=a4 export R_PAPERSIZE # Default Print Command # Choose one of the following # R_PRINTCMD="lpr" # R_PRINTCMD="lp" R_PRINTCMD=lpr export R_PRINTCMD exec $DEBUGGER $RHOME/bin/$OSTYPE/R.binary $* -------------- next part -------------- #!/bin/sh if [ "$1" = "lib" ] then file=$RHOME/$1/$OSTYPE/$2 else file=$RHOME/$1/$2 fi if [ -r $file ] then echo $file else echo fi
>>>>> Gregory R Warnes writes:> I've modified the "$RHOME/bin/R" and "$RHOME/cmd/filename" so that you > can use the same directories for multiple machines. That is, machines > running various flavors of UNIX can access the same directories.> The modified structure adds the directories> $RHOME/bin/$OSTYPE/ > $RHOME/lib/$OSTYPE/> to hold the machine specific binaries.> For instance, here the $RHOME directory contains two subdirectories,> $RHOME/bin/solaris/ > $RHOME/bin/sunos4/> which each hold the appropriate R.binary file.> These two modified functions assume that the environment variable $OSTYPE > is appropriately set, as is done automatically by the shell tcsh. If it > is not set, the directory names collapse to the original values, > $RHOME/bin/ and $RHOME/lib/> ...Is OSTYPE defined by POSIX? I tried bash, ksh and csh on my Debian GNU/Linux system. Whereas all have it, we have bash, ksh: Linux tcsh, csh: linux which is unfortunate but one could live with that (lowercasing ...). The real problem is that the OS Linux exists on several hardware platforms (ix86, alpha, solaris, m68k, ...), so one would really need ${OSTYPE}-${HOSTTYPE} Again not knowing what POSIX says, here are the results: bash, ksh: i386 tcsh, csh: i386-linux OH NO! *** Note also that whereas the suggestion is perfect for binaries, it is in a way `orthogonal' to rearranging the R tree into <library>/<section>/<type> structure ... hmm, or should we have <platform> dirs for exec and objs? -k =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-