orig/makeall.csh
author Axel Jacobs <axel@jaloxa.eu>
Mon, 14 Apr 2014 22:21:17 +0100
changeset 73 87fa3132a136
parent 0 0aa115157c9c
permissions -rw-r--r--
New IES test file with spaces in file name
     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