ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/makeall
Revision: 1.21
Committed: Wed Sep 21 17:17:23 2005 UTC (18 years, 6 months ago) by greg
Branch: MAIN
CVS Tags: rad3R8
Changes since 1.20: +2 -2 lines
Log Message:
Added -Dfseeko=fseek for Linux machines, as library call is currently broken

File Contents

# Content
1 #!/bin/csh -f
2 # RCSid $Id: makeall,v 1.20 2005/09/19 02:23:58 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) HP workstation
104 3) Silicon Graphics
105 4) AIX (RS/6000)
106 5) BSDI BSD/386
107 6) Linux
108 7) MacOS X
109 8) FreeBSD
110 9) Cygwin
111 10) Other
112
113 _EOF_
114 echo -n "Choice? "
115 set arch="$<"
116 switch ("$arch")
117 case 1: # SPARC Station
118 set arch=sun
119 set mach="-I/usr/openwin/include -L/usr/openwin/lib -DNOSTEREO"
120 set opt="-O"
121 set compat="strcmp.o"
122 breaksw
123 case 2: # HP workstation
124 set mach=""
125 set opt="-O -Aa -D_HPUX_SOURCE"
126 set compat="strcmp.o"
127 set arch=hpux
128 breaksw
129 case 3: # Silicon Graphics
130 set arch=sgi
131 switch (`uname -r`)
132 case 3.*:
133 set mach="-noprototypes"
134 set opt="-O"
135 set special="sgi"
136 set compat="strcmp.o"
137 breaksw
138 case 4.*:
139 set mach=""
140 set opt="-O2"
141 set compat="strcmp.o"
142 set extras='"MLIB=-lfastm -lm"'
143 breaksw
144 default: # 5.x or later
145 ln -s `which wish` $idir/wish4.0
146 set path=($idir $path)
147 set mach="-w"
148 set opt="-O2"
149 set special="ogl"
150 set compat="strcmp.o"
151 breaksw
152 endsw
153 breaksw
154 case 4: # AIX
155 set opt="-O"
156 set compat="erf.o strcmp.o"
157 set arch=PowerPC
158 breaksw
159 case 5: # BSDI BSD/386
160 set mach="-DBSD -L/usr/X11/lib -I/usr/X11/include"
161 set opt="-O"
162 set arch=IBMPC
163 set compat="erf.o strcmp.o"
164 breaksw
165 case 6: # Linux
166 set mach="-Dlinux -D_FILE_OFFSET_BITS=64 -Dfseeko=fseek -L/usr/X11R6/lib -I/usr/include/X11 -DNOSTEREO"
167 set opt="-O2"
168 set arch=IBMPC
169 set compat="erf.o"
170 set extras=CC=gcc
171 breaksw
172 case 7: # MacOS X
173 set mach="-DBSD -DNOSTEREO -Dfreebsd -I/usr/X11R6/include -L/usr/X11R6/lib"
174 set opt="-O2"
175 set arch=PowerPC
176 set extras="CC=cc CONFIGURE_ARCH=powerpc"
177 set special="ogl"
178 breaksw
179 case 8: # FreeBSD
180 set mach="-DBSD -DNOSTEREO -Dfreebsd -I/usr/X11R6/include -L/usr/X11R6/lib"
181 set opt="-O"
182 set compat="erf.o"
183 set extras='CC=cc MLIB="-lcompat -lm"'
184 set arch=IBMPC
185 breaksw
186 case 9: # Cygwin
187 set mach="-Dfreebsd -L/usr/lib -L/usr/X11R6/lib -I/usr/include/X11 -I/usr/X11R6/include -DNOSTEREO"
188 set opt="-O2"
189 set arch=IBMPC
190 set compat="erf.o"
191 set extras="CC=gcc"
192 set special="ogl"
193 set esuffix=".exe"
194 breaksw
195 case 10: # Other
196 set opt="-O"
197 set compat="erf.o strcmp.o"
198 echo -n "Are you using the GNU C compiler [n]? "
199 if ( "$<" =~ [yY]* ) then
200 set extras="CC=gcc"
201 endif
202 set arch=other
203 breaksw
204 default:
205 echo "Illegal choice\!"
206 echo "Installation aborted."
207 exit 1
208 breaksw
209 endsw
210 source installib
211 sed 's/[ ]*$//' > $rmake << _EOF_
212 #!/bin/sh
213 exec make "SPECIAL=$special" \
214 "OPT=$opt" \
215 "MACH=$mach" \
216 ARCH=$arch "COMPAT=$compat" \
217 INSTDIR=$idir \
218 LIBDIR=$ldir \
219 ESUFFIX=$esuffix \
220 $extras "\$@" -f Rmakefile
221 _EOF_
222 chmod 755 $rmake
223 chmod 644 src/*/Rmakefile src/rt/devtable.c
224 gotrmake:
225 echo "Current rmake command is:"
226 cat $rmake
227 echo -n "Do you want to change it? "
228 set ans="$<"
229 if ( "$ans" =~ [yY]* ) then
230 cp $rmake /tmp/rmake$$
231 $EDITOR $rmake
232 if ( `cat $rmake /tmp/rmake$$ | grep OPT= | uniq | wc -l` == 2 ) set newrmake
233 rm -f /tmp/rmake$$
234 endif
235 if ( ! -d src/lib ) then
236 mkdir src/lib
237 endif
238 if ( $?newrmake ) then
239 echo 'New rmake command -- running "makeall clean"...'
240 csh -f $0 clean
241 endif
242 cd src
243 echo "Making programs..."
244 set errs=0
245 foreach i ( $srcdirs )
246 pushd $i
247 echo "In directory $i..."
248 $rmake -k $*
249 @ errs += $status
250 popd
251 end
252 if ( $errs ) then
253 echo "There were some errors."
254 else
255 echo "Done."
256 endif
257 cd ..
258 if (! $inpath ) then
259 echo ""
260 echo "Add $idir to the beginning of your execution path:"
261 echo 'For C-shell users, put the following into ~/.cshrc'
262 echo " set path=( $idir "'$path )'
263 echo 'For Bourne shell users, put the following into $HOME/.profile'
264 echo " PATH=$idir"':$PATH'
265 echo " export PATH"
266 endif
267 else
268 cd src
269 foreach i ( $srcdirs )
270 pushd $i
271 echo "In directory $i..."
272 make -f Rmakefile $*
273 popd
274 end
275 cd ..
276 foreach i ( $* )
277 if ( "$i" == clean ) then
278 echo "Removing library archives..."
279 rm -f src/lib/*.{a,o,la}
280 endif
281 end
282 echo "Done."
283 endif
284 exit 0