ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/makeall
Revision: 1.20
Committed: Mon Sep 19 02:23:58 2005 UTC (19 years, 1 month ago) by greg
Branch: MAIN
Changes since 1.19: +11 -11 lines
Log Message:
Eliminated SPEED macro from makeall and source tree

File Contents

# User Rev Content
1 greg 1.1 #!/bin/csh -f
2 greg 1.20 # RCSid $Id: makeall,v 1.19 2005/08/09 21:21:14 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 schorsch 1.7 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.20 set opt="-O2"
175 schorsch 1.9 set arch=PowerPC
176     set extras="CC=cc CONFIGURE_ARCH=powerpc"
177 greg 1.1 set special="ogl"
178 schorsch 1.9 breaksw
179 greg 1.1 case 8: # FreeBSD
180 schorsch 1.9 set mach="-DBSD -DNOSTEREO -Dfreebsd -I/usr/X11R6/include -L/usr/X11R6/lib"
181 greg 1.20 set opt="-O"
182 greg 1.15 set compat="erf.o"
183 greg 1.18 set extras='CC=cc MLIB="-lcompat -lm"'
184 greg 1.1 set arch=IBMPC
185 schorsch 1.9 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 greg 1.20 set opt="-O2"
189 schorsch 1.9 set arch=IBMPC
190 greg 1.15 set compat="erf.o"
191 schorsch 1.9 set extras="CC=gcc"
192     set special="ogl"
193     set esuffix=".exe"
194     breaksw
195     case 10: # Other
196 greg 1.1 set opt="-O"
197 greg 1.15 set compat="erf.o strcmp.o"
198 greg 1.1 echo -n "Are you using the GNU C compiler [n]? "
199     if ( "$<" =~ [yY]* ) then
200     set extras="CC=gcc"
201     endif
202 greg 1.6 set arch=other
203 greg 1.1 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 schorsch 1.9 ESUFFIX=$esuffix \
220 greg 1.1 $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 greg 1.10 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 greg 1.19 echo 'For Bourne shell users, put the following into $HOME/.profile'
264 greg 1.10 echo " PATH=$idir"':$PATH'
265     echo " export PATH"
266     endif
267 greg 1.1 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 greg 1.17 rm -f src/lib/*.{a,o,la}
280 greg 1.1 endif
281     end
282 greg 1.10 echo "Done."
283     endif
284 greg 1.1 exit 0