orig/makeall.csh
changeset 0 0aa115157c9c
equal deleted inserted replaced
-1:000000000000 0:0aa115157c9c
       
     1 #!/bin/csh -f
       
     2 # RCSid $Id: makeall,v 1.25 2010/11/29 17:22:44 greg Exp $
       
     3 # 
       
     4 # Make all the Radiance programs
       
     5 #
       
     6 if ( $#argv < 1 ) then
       
     7 	echo "Usage: makeall install [clean] [make options]"
       
     8 	echo "   or: makeall clean"
       
     9 	echo "   or: makeall library"
       
    10 	exit 1
       
    11 endif
       
    12 if ( "$1" == library ) then
       
    13 	source installib
       
    14 	cp -f src/*/*.{cal,tab,hex} $ldir
       
    15 	echo ""
       
    16 	echo "Set the environment variable RAYPATH=.:$ldir"
       
    17 	echo 'For C-shell users, put the following into ~/.cshrc'
       
    18 	echo "	setenv RAYPATH .:$ldir"
       
    19 	echo 'For Bourne shell users, put the following into $HOME/.profile'
       
    20 	echo "	RAYPATH=.:$ldir"
       
    21 	echo "	export RAYPATH"
       
    22 	echo ""
       
    23 	exit 0
       
    24 endif
       
    25 set srcdirs=( common rt meta cv gen ot px hd util cal )
       
    26 if ( "$1" == install ) then
       
    27 	cat << _EOF_
       
    28 
       
    29 		`cat src/rt/VERSION` INSTALLATION
       
    30 
       
    31 This script rebuilds all of the Radiance programs and installs
       
    32 them on your system.  You should read the file README before running
       
    33 this script.  You can type ^C (followed by return) at any time to abort.
       
    34 
       
    35 You must first answer the following questions.
       
    36 
       
    37 _EOF_
       
    38 if ( ! $?EDITOR ) then
       
    39 	echo -n "What is your preferred editor [vi]? "
       
    40 	set ans="$<"
       
    41 	if ( "$ans" != "" ) then
       
    42 		setenv EDITOR "$ans"
       
    43 	else
       
    44 		setenv EDITOR vi
       
    45 	endif
       
    46 endif
       
    47 again1:
       
    48 echo -n "Where do you want the executables [/usr/local/bin]? "
       
    49 set idir=$<
       
    50 (echo $idir) >/dev/null
       
    51 if ( $status ) then
       
    52 	goto again1
       
    53 endif
       
    54 set idir=$idir
       
    55 if ( "$idir" == "" ) then
       
    56 	set idir=/usr/local/bin
       
    57 else if ( "$idir" !~ /* ) then
       
    58 	echo "Directory must be relative to root, please reenter"
       
    59 	goto again1
       
    60 endif
       
    61 if ( ! -d $idir ) then
       
    62 	mkdir $idir
       
    63 	if ( $status ) then
       
    64 		echo "Cannot create directory, please reenter"
       
    65 		goto again1
       
    66 	endif
       
    67 endif
       
    68 if ( ! -d $idir/dev ) then
       
    69 	mkdir $idir/dev
       
    70 	if ( $status ) then
       
    71 		echo "Cannot create subdirectory, please reenter"
       
    72 		goto again1
       
    73 	endif
       
    74 endif
       
    75 set inpath=0
       
    76 foreach i ( $path )
       
    77 	if ( "$i" == "$idir" ) then
       
    78 		set inpath=1
       
    79 		break
       
    80 	endif
       
    81 end
       
    82 set rmake=$idir/rmake
       
    83 if ( "`ls -tL $rmake $0 |& head -1`" == $rmake ) then
       
    84 	goto gotrmake
       
    85 endif
       
    86 set newrmake
       
    87 more src/common/copyright.h
       
    88 echo -n "Do you understand and accept the terms of this agreement [n]? "
       
    89 set ans="$<"
       
    90 if ( "$ans" !~ [yY]* ) exit
       
    91 set special=
       
    92 set arch=
       
    93 set opt=
       
    94 set mach=
       
    95 set compat=
       
    96 set extras=
       
    97 set esuffix=
       
    98 cat << _EOF_
       
    99 
       
   100 Please select your system type from the following list:
       
   101 
       
   102 	1)	Sun Solaris
       
   103 	2)	Linux
       
   104 	3)	MacOS X
       
   105 	4)	FreeBSD
       
   106 	5)	Cygwin
       
   107 	6)	Other
       
   108 
       
   109 _EOF_
       
   110 echo -n "Choice? "
       
   111 set arch="$<"
       
   112 switch ("$arch")
       
   113 case 1:			# SPARC Station
       
   114 	set arch=sun
       
   115 	set mach="-I/usr/openwin/include -L/usr/openwin/lib -DNOSTEREO"
       
   116 	set opt="-O"
       
   117 	set compat="strcmp.o timegm.o"
       
   118 	breaksw
       
   119 case 2:			# Linux
       
   120 	set mach="-Dlinux -D_FILE_OFFSET_BITS=64 -L/usr/X11R6/lib -I/usr/include/X11 -DNOSTEREO"
       
   121 	set opt="-O2"
       
   122 	set arch=IBMPC
       
   123 	set compat="erf.o"
       
   124 	set extras=CC=gcc
       
   125 	breaksw
       
   126 case 3:			# MacOS X
       
   127 	set mach="-DBSD -DNOSTEREO -Dfreebsd -I/usr/X11R6/include -L/usr/X11R6/lib"
       
   128 	set opt="-O2"
       
   129 	set arch=Intel
       
   130 	set extras="CC=cc CONFIGURE_ARCH=i386"
       
   131 	set special="ogl"
       
   132 	breaksw
       
   133 case 4:			# FreeBSD
       
   134 	set mach="-DBSD -DNOSTEREO -Dfreebsd -I/usr/X11R6/include -L/usr/X11R6/lib"
       
   135 	set opt="-O"
       
   136 	set compat="erf.o"
       
   137 	set extras='CC=cc MLIB="-lcompat -lm"'
       
   138 	set arch=IBMPC
       
   139 	breaksw
       
   140 case 5:			# Cygwin
       
   141 	set mach="-Dfreebsd -L/usr/lib -L/usr/X11R6/lib -I/usr/include/X11 -I/usr/X11R6/include -DNOSTEREO"
       
   142 	set opt="-O2"
       
   143 	set arch=IBMPC
       
   144 	set compat="erf.o"
       
   145 	set extras="CC=gcc"
       
   146 	set special="ogl"
       
   147 	set esuffix=".exe"
       
   148 	breaksw
       
   149 case 6:			# Other
       
   150 	set opt="-O"
       
   151 	set compat="erf.o strcmp.o"
       
   152 	echo -n "Are you using the GNU C compiler [n]? "
       
   153 	if ( "$<" =~ [yY]* ) then
       
   154 		set extras="CC=gcc"
       
   155 	else
       
   156 		set compat="$compat timegm.o"
       
   157 	endif
       
   158 	set arch=other
       
   159 	breaksw
       
   160 default:
       
   161 	echo "Illegal choice\!"
       
   162 	echo "Installation aborted."
       
   163 	exit 1
       
   164 	breaksw
       
   165 endsw
       
   166 source installib
       
   167 sed 's/[ 	]*$//' > $rmake << _EOF_
       
   168 #!/bin/sh
       
   169 exec make "SPECIAL=$special" \
       
   170 	"OPT=$opt" \
       
   171 	"MACH=$mach" \
       
   172 	ARCH=$arch "COMPAT=$compat" \
       
   173 	INSTDIR=$idir \
       
   174 	LIBDIR=$ldir \
       
   175 	ESUFFIX=$esuffix \
       
   176 	$extras "\$@" -f Rmakefile
       
   177 _EOF_
       
   178 chmod 755 $rmake
       
   179 chmod 644 src/*/Rmakefile src/rt/devtable.c
       
   180 gotrmake:
       
   181 echo "Current rmake command is:"
       
   182 cat $rmake
       
   183 echo -n "Do you want to change it? "
       
   184 set ans="$<"
       
   185 if ( "$ans" =~ [yY]* ) then
       
   186 	cp $rmake /tmp/rmake$$
       
   187 	$EDITOR $rmake
       
   188 	if ( `cat $rmake /tmp/rmake$$ | grep OPT= | uniq | wc -l` == 2 ) set newrmake
       
   189 	rm -f /tmp/rmake$$
       
   190 endif
       
   191 if ( ! -d src/lib ) then
       
   192 	mkdir src/lib
       
   193 endif
       
   194 if ( $?newrmake ) then
       
   195 	echo 'New rmake command -- running "makeall clean"...'
       
   196 	csh -f $0 clean
       
   197 endif
       
   198 cd src
       
   199 echo "Making programs..."
       
   200 set errs=0
       
   201 foreach i ( $srcdirs )
       
   202 	pushd $i
       
   203 	echo "In directory $i..."
       
   204 	$rmake -k $*
       
   205 	@ errs += $status
       
   206 	popd
       
   207 end
       
   208 if ( $errs ) then
       
   209 	echo "There were some errors."
       
   210 else
       
   211 	echo "Done."
       
   212 endif
       
   213 cd ..
       
   214 if (! $inpath ) then
       
   215 	echo ""
       
   216 	echo "Add $idir to the beginning of your execution path:"
       
   217 	echo 'For C-shell users, put the following into ~/.cshrc'
       
   218 	echo "	set path=( $idir "'$path )'
       
   219 	echo 'For Bourne shell users, put the following into $HOME/.profile'
       
   220 	echo "	PATH=$idir"':$PATH'
       
   221 	echo "	export PATH"
       
   222 endif
       
   223 else
       
   224 cd src
       
   225 foreach i ( $srcdirs )
       
   226 	pushd $i
       
   227 	echo "In directory $i..."
       
   228 	make -f Rmakefile $*
       
   229 	popd
       
   230 end
       
   231 cd ..
       
   232 foreach i ( $* )
       
   233 	if ( "$i" == clean ) then
       
   234 		echo "Removing library archives..."
       
   235 		rm -f src/lib/*.{a,o,la}
       
   236 	endif
       
   237 end
       
   238 echo "Done."
       
   239 endif
       
   240 exit 0