ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/makeall
Revision: 1.23
Committed: Thu Apr 17 14:58:57 2008 UTC (15 years, 11 months ago) by greg
Branch: MAIN
CVS Tags: rad3R9
Changes since 1.22: +3 -1 lines
Log Message:
Added fix for OpenGL link error under Leopard (thanks to J. Mardaljevic)

File Contents

# Content
1 #!/bin/csh -f
2 # RCSid $Id: makeall,v 1.22 2006/11/05 01:51:16 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 -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 # Ugly fix for Leopard OpenGL link bug:
175 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"
176 set opt="-O2"
177 set arch=PowerPC
178 set extras="CC=cc CONFIGURE_ARCH=powerpc"
179 set special="ogl"
180 breaksw
181 case 8: # FreeBSD
182 set mach="-DBSD -DNOSTEREO -Dfreebsd -I/usr/X11R6/include -L/usr/X11R6/lib"
183 set opt="-O"
184 set compat="erf.o"
185 set extras='CC=cc MLIB="-lcompat -lm"'
186 set arch=IBMPC
187 breaksw
188 case 9: # Cygwin
189 set mach="-Dfreebsd -L/usr/lib -L/usr/X11R6/lib -I/usr/include/X11 -I/usr/X11R6/include -DNOSTEREO"
190 set opt="-O2"
191 set arch=IBMPC
192 set compat="erf.o"
193 set extras="CC=gcc"
194 set special="ogl"
195 set esuffix=".exe"
196 breaksw
197 case 10: # Other
198 set opt="-O"
199 set compat="erf.o strcmp.o"
200 echo -n "Are you using the GNU C compiler [n]? "
201 if ( "$<" =~ [yY]* ) then
202 set extras="CC=gcc"
203 endif
204 set arch=other
205 breaksw
206 default:
207 echo "Illegal choice\!"
208 echo "Installation aborted."
209 exit 1
210 breaksw
211 endsw
212 source installib
213 sed 's/[ ]*$//' > $rmake << _EOF_
214 #!/bin/sh
215 exec make "SPECIAL=$special" \
216 "OPT=$opt" \
217 "MACH=$mach" \
218 ARCH=$arch "COMPAT=$compat" \
219 INSTDIR=$idir \
220 LIBDIR=$ldir \
221 ESUFFIX=$esuffix \
222 $extras "\$@" -f Rmakefile
223 _EOF_
224 chmod 755 $rmake
225 chmod 644 src/*/Rmakefile src/rt/devtable.c
226 gotrmake:
227 echo "Current rmake command is:"
228 cat $rmake
229 echo -n "Do you want to change it? "
230 set ans="$<"
231 if ( "$ans" =~ [yY]* ) then
232 cp $rmake /tmp/rmake$$
233 $EDITOR $rmake
234 if ( `cat $rmake /tmp/rmake$$ | grep OPT= | uniq | wc -l` == 2 ) set newrmake
235 rm -f /tmp/rmake$$
236 endif
237 if ( ! -d src/lib ) then
238 mkdir src/lib
239 endif
240 if ( $?newrmake ) then
241 echo 'New rmake command -- running "makeall clean"...'
242 csh -f $0 clean
243 endif
244 cd src
245 echo "Making programs..."
246 set errs=0
247 foreach i ( $srcdirs )
248 pushd $i
249 echo "In directory $i..."
250 $rmake -k $*
251 @ errs += $status
252 popd
253 end
254 if ( $errs ) then
255 echo "There were some errors."
256 else
257 echo "Done."
258 endif
259 cd ..
260 if (! $inpath ) then
261 echo ""
262 echo "Add $idir to the beginning of your execution path:"
263 echo 'For C-shell users, put the following into ~/.cshrc'
264 echo " set path=( $idir "'$path )'
265 echo 'For Bourne shell users, put the following into $HOME/.profile'
266 echo " PATH=$idir"':$PATH'
267 echo " export PATH"
268 endif
269 else
270 cd src
271 foreach i ( $srcdirs )
272 pushd $i
273 echo "In directory $i..."
274 make -f Rmakefile $*
275 popd
276 end
277 cd ..
278 foreach i ( $* )
279 if ( "$i" == clean ) then
280 echo "Removing library archives..."
281 rm -f src/lib/*.{a,o,la}
282 endif
283 end
284 echo "Done."
285 endif
286 exit 0