Added original CSH script from HEAD-20110409.
#!/bin/csh -f
# RCSid $Id: makeall,v 1.25 2010/11/29 17:22:44 greg Exp $
#
# Make all the Radiance programs
#
if ( $#argv < 1 ) then
echo "Usage: makeall install [clean] [make options]"
echo " or: makeall clean"
echo " or: makeall library"
exit 1
endif
if ( "$1" == library ) then
source installib
cp -f src/*/*.{cal,tab,hex} $ldir
echo ""
echo "Set the environment variable RAYPATH=.:$ldir"
echo 'For C-shell users, put the following into ~/.cshrc'
echo " setenv RAYPATH .:$ldir"
echo 'For Bourne shell users, put the following into $HOME/.profile'
echo " RAYPATH=.:$ldir"
echo " export RAYPATH"
echo ""
exit 0
endif
set srcdirs=( common rt meta cv gen ot px hd util cal )
if ( "$1" == install ) then
cat << _EOF_
`cat src/rt/VERSION` INSTALLATION
This script rebuilds all of the Radiance programs and installs
them on your system. You should read the file README before running
this script. You can type ^C (followed by return) at any time to abort.
You must first answer the following questions.
_EOF_
if ( ! $?EDITOR ) then
echo -n "What is your preferred editor [vi]? "
set ans="$<"
if ( "$ans" != "" ) then
setenv EDITOR "$ans"
else
setenv EDITOR vi
endif
endif
again1:
echo -n "Where do you want the executables [/usr/local/bin]? "
set idir=$<
(echo $idir) >/dev/null
if ( $status ) then
goto again1
endif
set idir=$idir
if ( "$idir" == "" ) then
set idir=/usr/local/bin
else if ( "$idir" !~ /* ) then
echo "Directory must be relative to root, please reenter"
goto again1
endif
if ( ! -d $idir ) then
mkdir $idir
if ( $status ) then
echo "Cannot create directory, please reenter"
goto again1
endif
endif
if ( ! -d $idir/dev ) then
mkdir $idir/dev
if ( $status ) then
echo "Cannot create subdirectory, please reenter"
goto again1
endif
endif
set inpath=0
foreach i ( $path )
if ( "$i" == "$idir" ) then
set inpath=1
break
endif
end
set rmake=$idir/rmake
if ( "`ls -tL $rmake $0 |& head -1`" == $rmake ) then
goto gotrmake
endif
set newrmake
more src/common/copyright.h
echo -n "Do you understand and accept the terms of this agreement [n]? "
set ans="$<"
if ( "$ans" !~ [yY]* ) exit
set special=
set arch=
set opt=
set mach=
set compat=
set extras=
set esuffix=
cat << _EOF_
Please select your system type from the following list:
1) Sun Solaris
2) Linux
3) MacOS X
4) FreeBSD
5) Cygwin
6) Other
_EOF_
echo -n "Choice? "
set arch="$<"
switch ("$arch")
case 1: # SPARC Station
set arch=sun
set mach="-I/usr/openwin/include -L/usr/openwin/lib -DNOSTEREO"
set opt="-O"
set compat="strcmp.o timegm.o"
breaksw
case 2: # Linux
set mach="-Dlinux -D_FILE_OFFSET_BITS=64 -L/usr/X11R6/lib -I/usr/include/X11 -DNOSTEREO"
set opt="-O2"
set arch=IBMPC
set compat="erf.o"
set extras=CC=gcc
breaksw
case 3: # MacOS X
set mach="-DBSD -DNOSTEREO -Dfreebsd -I/usr/X11R6/include -L/usr/X11R6/lib"
set opt="-O2"
set arch=Intel
set extras="CC=cc CONFIGURE_ARCH=i386"
set special="ogl"
breaksw
case 4: # FreeBSD
set mach="-DBSD -DNOSTEREO -Dfreebsd -I/usr/X11R6/include -L/usr/X11R6/lib"
set opt="-O"
set compat="erf.o"
set extras='CC=cc MLIB="-lcompat -lm"'
set arch=IBMPC
breaksw
case 5: # Cygwin
set mach="-Dfreebsd -L/usr/lib -L/usr/X11R6/lib -I/usr/include/X11 -I/usr/X11R6/include -DNOSTEREO"
set opt="-O2"
set arch=IBMPC
set compat="erf.o"
set extras="CC=gcc"
set special="ogl"
set esuffix=".exe"
breaksw
case 6: # Other
set opt="-O"
set compat="erf.o strcmp.o"
echo -n "Are you using the GNU C compiler [n]? "
if ( "$<" =~ [yY]* ) then
set extras="CC=gcc"
else
set compat="$compat timegm.o"
endif
set arch=other
breaksw
default:
echo "Illegal choice\!"
echo "Installation aborted."
exit 1
breaksw
endsw
source installib
sed 's/[ ]*$//' > $rmake << _EOF_
#!/bin/sh
exec make "SPECIAL=$special" \
"OPT=$opt" \
"MACH=$mach" \
ARCH=$arch "COMPAT=$compat" \
INSTDIR=$idir \
LIBDIR=$ldir \
ESUFFIX=$esuffix \
$extras "\$@" -f Rmakefile
_EOF_
chmod 755 $rmake
chmod 644 src/*/Rmakefile src/rt/devtable.c
gotrmake:
echo "Current rmake command is:"
cat $rmake
echo -n "Do you want to change it? "
set ans="$<"
if ( "$ans" =~ [yY]* ) then
cp $rmake /tmp/rmake$$
$EDITOR $rmake
if ( `cat $rmake /tmp/rmake$$ | grep OPT= | uniq | wc -l` == 2 ) set newrmake
rm -f /tmp/rmake$$
endif
if ( ! -d src/lib ) then
mkdir src/lib
endif
if ( $?newrmake ) then
echo 'New rmake command -- running "makeall clean"...'
csh -f $0 clean
endif
cd src
echo "Making programs..."
set errs=0
foreach i ( $srcdirs )
pushd $i
echo "In directory $i..."
$rmake -k $*
@ errs += $status
popd
end
if ( $errs ) then
echo "There were some errors."
else
echo "Done."
endif
cd ..
if (! $inpath ) then
echo ""
echo "Add $idir to the beginning of your execution path:"
echo 'For C-shell users, put the following into ~/.cshrc'
echo " set path=( $idir "'$path )'
echo 'For Bourne shell users, put the following into $HOME/.profile'
echo " PATH=$idir"':$PATH'
echo " export PATH"
endif
else
cd src
foreach i ( $srcdirs )
pushd $i
echo "In directory $i..."
make -f Rmakefile $*
popd
end
cd ..
foreach i ( $* )
if ( "$i" == clean ) then
echo "Removing library archives..."
rm -f src/lib/*.{a,o,la}
endif
end
echo "Done."
endif
exit 0