#!/bin/csh -f # RCSid $Id: makeall,v 1.23 2008/04/17 14:58:57 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) HP workstation 3) Silicon Graphics 4) AIX (RS/6000) 5) BSDI BSD/386 6) Linux 7) MacOS X 8) FreeBSD 9) Cygwin 10) 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" breaksw case 2: # HP workstation set mach="" set opt="-O -Aa -D_HPUX_SOURCE" set compat="strcmp.o" set arch=hpux breaksw case 3: # Silicon Graphics set arch=sgi switch (`uname -r`) case 3.*: set mach="-noprototypes" set opt="-O" set special="sgi" set compat="strcmp.o" breaksw case 4.*: set mach="" set opt="-O2" set compat="strcmp.o" set extras='"MLIB=-lfastm -lm"' breaksw default: # 5.x or later ln -s `which wish` $idir/wish4.0 set path=($idir $path) set mach="-w" set opt="-O2" set special="ogl" set compat="strcmp.o" breaksw endsw breaksw case 4: # AIX set opt="-O" set compat="erf.o strcmp.o" set arch=PowerPC breaksw case 5: # BSDI BSD/386 set mach="-DBSD -L/usr/X11/lib -I/usr/X11/include" set opt="-O" set arch=IBMPC set compat="erf.o strcmp.o" breaksw case 6: # 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 7: # MacOS X set mach="-DBSD -DNOSTEREO -Dfreebsd -I/usr/X11R6/include -L/usr/X11R6/lib" # Ugly fix for Leopard OpenGL link bug: if (`uname -r` =~ 9.*) set mach="$mach -Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib" set opt="-O2" set arch=PowerPC set extras="CC=cc CONFIGURE_ARCH=powerpc" set special="ogl" breaksw case 8: # 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 9: # 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 10: # 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" 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