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

# User Rev Content
1 greg 1.1 #!/bin/csh -f
2 greg 1.23 # RCSid $Id: makeall,v 1.22 2006/11/05 01:51:16 greg Exp $
3 greg 1.1 #
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 greg 1.8 cp -f src/*/*.{cal,tab,hex} $ldir
15 greg 1.1 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 greg 1.19 echo 'For Bourne shell users, put the following into $HOME/.profile'
20 greg 1.1 echo " RAYPATH=.:$ldir"
21     echo " export RAYPATH"
22     echo ""
23     exit 0
24     endif
25 greg 1.16 set srcdirs=( common rt meta cv gen ot px hd util cal )
26 greg 1.1 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 greg 1.4 if ( $status ) then
52     goto again1
53     endif
54 greg 1.1 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 greg 1.10 set inpath=0
76     foreach i ( $path )
77     if ( "$i" == "$idir" ) then
78     set inpath=1
79     break
80     endif
81     end
82 greg 1.1 set rmake=$idir/rmake
83 greg 1.4 if ( "`ls -tL $rmake $0 |& head -1`" == $rmake ) then
84     goto gotrmake
85     endif
86 greg 1.1 set newrmake
87 greg 1.11 more src/common/copyright.h
88 greg 1.1 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 schorsch 1.9 set esuffix=
98 greg 1.1 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 schorsch 1.9 7) MacOS X
109 greg 1.1 8) FreeBSD
110 schorsch 1.9 9) Cygwin
111     10) Other
112 greg 1.1
113     _EOF_
114     echo -n "Choice? "
115     set arch="$<"
116     switch ("$arch")
117     case 1: # SPARC Station
118     set arch=sun
119 greg 1.4 set mach="-I/usr/openwin/include -L/usr/openwin/lib -DNOSTEREO"
120 greg 1.20 set opt="-O"
121 greg 1.15 set compat="strcmp.o"
122 greg 1.1 breaksw
123     case 2: # HP workstation
124     set mach=""
125 greg 1.20 set opt="-O -Aa -D_HPUX_SOURCE"
126 greg 1.15 set compat="strcmp.o"
127 greg 1.1 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 greg 1.20 set opt="-O"
135 greg 1.1 set special="sgi"
136 greg 1.15 set compat="strcmp.o"
137 greg 1.1 breaksw
138     case 4.*:
139     set mach=""
140 greg 1.20 set opt="-O2"
141 greg 1.15 set compat="strcmp.o"
142 greg 1.1 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 greg 1.20 set opt="-O2"
149 greg 1.1 set special="ogl"
150 greg 1.15 set compat="strcmp.o"
151 greg 1.1 breaksw
152     endsw
153     breaksw
154     case 4: # AIX
155     set opt="-O"
156 greg 1.15 set compat="erf.o strcmp.o"
157 greg 1.6 set arch=PowerPC
158 greg 1.1 breaksw
159     case 5: # BSDI BSD/386
160     set mach="-DBSD -L/usr/X11/lib -I/usr/X11/include"
161 greg 1.20 set opt="-O"
162 greg 1.1 set arch=IBMPC
163 greg 1.15 set compat="erf.o strcmp.o"
164 greg 1.1 breaksw
165     case 6: # Linux
166 greg 1.22 set mach="-Dlinux -D_FILE_OFFSET_BITS=64 -L/usr/X11R6/lib -I/usr/include/X11 -DNOSTEREO"
167 greg 1.20 set opt="-O2"
168 greg 1.1 set arch=IBMPC
169 greg 1.15 set compat="erf.o"
170 greg 1.1 set extras=CC=gcc
171     breaksw
172 schorsch 1.9 case 7: # MacOS X
173     set mach="-DBSD -DNOSTEREO -Dfreebsd -I/usr/X11R6/include -L/usr/X11R6/lib"
174 greg 1.23 # 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 greg 1.20 set opt="-O2"
177 schorsch 1.9 set arch=PowerPC
178     set extras="CC=cc CONFIGURE_ARCH=powerpc"
179 greg 1.1 set special="ogl"
180 schorsch 1.9 breaksw
181 greg 1.1 case 8: # FreeBSD
182 schorsch 1.9 set mach="-DBSD -DNOSTEREO -Dfreebsd -I/usr/X11R6/include -L/usr/X11R6/lib"
183 greg 1.20 set opt="-O"
184 greg 1.15 set compat="erf.o"
185 greg 1.18 set extras='CC=cc MLIB="-lcompat -lm"'
186 greg 1.1 set arch=IBMPC
187 schorsch 1.9 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 greg 1.20 set opt="-O2"
191 schorsch 1.9 set arch=IBMPC
192 greg 1.15 set compat="erf.o"
193 schorsch 1.9 set extras="CC=gcc"
194     set special="ogl"
195     set esuffix=".exe"
196     breaksw
197     case 10: # Other
198 greg 1.1 set opt="-O"
199 greg 1.15 set compat="erf.o strcmp.o"
200 greg 1.1 echo -n "Are you using the GNU C compiler [n]? "
201     if ( "$<" =~ [yY]* ) then
202     set extras="CC=gcc"
203     endif
204 greg 1.6 set arch=other
205 greg 1.1 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 schorsch 1.9 ESUFFIX=$esuffix \
222 greg 1.1 $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 greg 1.10 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 greg 1.19 echo 'For Bourne shell users, put the following into $HOME/.profile'
266 greg 1.10 echo " PATH=$idir"':$PATH'
267     echo " export PATH"
268     endif
269 greg 1.1 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 greg 1.17 rm -f src/lib/*.{a,o,la}
282 greg 1.1 endif
283     end
284 greg 1.10 echo "Done."
285     endif
286 greg 1.1 exit 0