Eliminate another warning.
[suif.git] / setup_suif
blob390403906b3f7cd6ccf66656126a7a97231002d6
1 #!/usr/local/bin/perl -w
3 # use strict;
5 my @envvars
6 = qw(SUIFHOME MACHINE SUIFPATH COMPILER_NAME
7 MANPATH LD_LIBRARY_PATH PATH TCL_INCLUDE_FLAGS
8 CC CXX
9 DEFAULT_SYSTEM_SPECIFIC_CXXFLAGS
10 DEFAULT_SYSTEM_SPECIFIC_CFLAGS
11 CC_OVERRIDE
12 CXX_OVERRIDE
13 SYSTEM_SPECIFIC_CFLAGS
14 SYSTEM_SPECIFIC_CXXFLAGS
15 INCLDIR SRCDIR MANDIR INFODIR HTMLDIR DOCDIR SCRIPTDIR TCLDIR
16 MACHDIR BINDIR LIBDIR SODIR
17 AUTOINITDIR VERDATADIR
18 PUREHOME
19 PURE
20 PURE_FLAGS
21 PURE_COLLECTOR
22 VISUAL_TCL);
24 use Env qw(SUIFHOME MACHINE SUIFPATH COMPILER_NAME
25 MANPATH LD_LIBRARY_PATH PATH TCL_INCLUDE_FLAGS
26 CC CXX
27 DEFAULT_SYSTEM_SPECIFIC_CXXFLAGS
28 DEFAULT_SYSTEM_SPECIFIC_CFLAGS
29 CC_OVERRIDE
30 CXX_OVERRIDE
31 SYSTEM_SPECIFIC_CFLAGS
32 SYSTEM_SPECIFIC_CXXFLAGS
33 INCLDIR SRCDIR MANDIR INFODIR HTMLDIR DOCDIR SCRIPTDIR TCLDIR
34 MACHDIR BINDIR LIBDIR SODIR
35 AUTOINITDIR VERDATADIR
36 PUREHOME
37 PURE
38 PURE_FLAGS
39 PURE_COLLECTOR
40 VISUAL_TCL);
42 my $flag = '-csh';
43 my $limits_off = 0;
45 while ($#ARGV >= 0) {
46 my $flag1 = $ARGV[0];
47 if ($flag1 eq '-limits') {
48 $limits_off = 1;
49 shift @ARGV;
50 next;
52 if ($flag1 eq '-suifhome') {
53 shift @ARGV;
54 if ($#ARGV < 0) {
55 &complain("-suifhome must have an argument"); exit 1; }
56 $SUIFHOME = shift @ARGV;
57 next;
59 if (($flag1 eq '-csh') || ($flag1 eq '-sh') || ($flag1 eq '-perl')) {
60 $flag = $flag1;
61 shift @ARGV;
62 next;
64 last;
67 if (($#ARGV > 0) ||
68 (($flag ne '-csh') && ($flag ne '-sh') && ($flag ne '-perl'))) {
69 &complain("Usage: $0 [-limits] [-suifhome home] { -sh | -csh | -perl }");
70 &complain(" Defaults to csh");
71 exit 1;
72 } elsif (! (defined $SUIFHOME)) {
73 &complain("Need SUIFHOME to be set or use the -suifhome option");
74 exit 1;
77 sub complain {
78 my($message) = @_;
79 print STDERR "$message\n";
82 # $ENV{SUIFHOME}=/suif/suif/suifhome
83 my @gccverres = `gcc -v 2>&1`;
84 my @gccverres1 = grep(/Reading specs/,@gccverres);
85 my $gccver = $gccverres1[0];
86 chomp $gccver;
87 if (! (defined $MACHINE)) {
88 $MACHINE = $gccver;
89 $MACHINE =~ s/^.*gcc-lib\///g;
90 $MACHINE =~ s/\/.*$//g;
93 if (! (defined $SUIFPATH)) {
94 $SUIFPATH = $gccver;
95 $SUIFPATH =~ s/Reading specs from //;
96 $SUIFPATH =~ s/\/specs//;
99 if (defined $COMPILER_NAME) {
100 if (($MACHINE =~ m/^sparc-sun-solaris[.0-9]*$/) &&
101 ($COMPILER_NAME eq 'sun_procompiler')) {
102 $MACHINE="${MACHINE}-sunpro";
103 } elsif (($MACHINE eq 'mips-sgi-irix5.3') &&
104 ($COMPILER_NAME =~ m/^gcc/)) {
105 $MACHINE="${MACHINE}-gcc";
107 } elsif ($MACHINE eq "mips-sgi-irix5.3") {
108 $COMPILER_NAME='sgi_c++';
109 } elsif ($MACHINE =~ m/^i386-.*-solaris2.4$/) {
110 $COMPILER_NAME='sun_procompiler';
111 } elsif ($MACHINE eq 'i586-linux') {
112 $COMPILER_NAME='egcs';
113 $CC_OVERRIDE='gcc';
114 $CXX_OVERRIDE='g++';
115 } else {
116 $COMPILER_NAME='egcs';
117 $CC_OVERRIDE='egcc';
118 $CXX_OVERRIDE='eg++';
121 if (defined $MANPATH) {
122 if (! ($MANPATH =~ m/$SUIFHOME\/man/)) {
123 $MANPATH="$SUIFHOME/man:$MANPATH";
125 } else {
126 $MANPATH="$SUIFHOME/man";
129 if (defined $LD_LIBRARY_PATH) {
130 $LD_LIBRARY_PATH="$SUIFHOME/$MACHINE/solib:$LD_LIBRARY_PATH";
131 } else {
132 $LD_LIBRARY_PATH="$SUIFHOME/$MACHINE/solib";
135 # put ultra dirs in paths
136 if (! ($PATH =~ m,/usr/local/ultra/bin,)) {
137 $PATH = "/usr/local/ultra/bin:$PATH";
139 if (! ($LD_LIBRARY_PATH =~ m,/usr/local/ultra/lib,)) {
140 $LD_LIBRARY_PATH = "/usr/local/ultra/lib:$LD_LIBRARY_PATH";
143 # put SUIFHOME dirs in path
144 if (! ($PATH =~ m/$SUIFHOME\/$MACHINE\/bin/)) {
145 $PATH = "$SUIFHOME/scripts:$SUIFHOME/$MACHINE/bin:$PATH";
147 if (! ($SUIFPATH =~ m/$SUIFHOME\/$MACHINE\/bin/)) {
148 $SUIFPATH = "$SUIFHOME/scripts:$SUIFHOME/$MACHINE/bin:$SUIFPATH";
151 # For the vbrowser, we need to include <tcl.h>, which isn't in
152 # /usr/include on all our machines. The following handles that issue.
154 if ($MACHINE eq 'mips-sgi-irix5.3') {
155 $TCL_INCLUDE_FLAGS = '-I/usr/local/include';
156 } elsif ($MACHINE eq 'sparc-sun-solaris2.3') {
157 $TCL_INCLUDE_FLAGS = '-I/usr/openwin/include -DTK4_1 -L/usr/openwin/lib';
158 } elsif ($MACHINE =~ m/^i386-.*-solaris2.4$/) {
159 $TCL_INCLUDE_FLAGS =
160 '-I/usr/local/include -I/usr/openwin/include -L/usr/local/lib -L/usr/openwin/lib';
161 } elsif ($MACHINE =~ m/^sparc-sun-solaris/) {
162 $TCL_INCLUDE_FLAGS = '-I/usr/local/include -I/usr/local/ultra/include -I/usr/openwin/include -L/usr/local/lib -L/usr/local/ultra/lib -L/usr/openwin/lib';
163 } elsif ($MACHINE eq 'alpha-dec-osf3.2') {
164 $TCL_INCLUDE_FLAGS = '-I/usr/local/ultra/include -L/usr/local/ultra/lib';
165 } elsif ($MACHINE =~ m/linux/) {
166 $TCL_INCLUDE_FLAGS = '-L/usr/X11R6/lib'
169 # shared directories
170 if (! defined $SRCDIR) { $SRCDIR = "$SUIFHOME/src"; }
171 if (! defined $INFODIR) { $INFODIR = "$SUIFHOME/info"; }
172 if (! defined $DOCDIR) { $DOCDIR = "$SUIFHOME/docs"; }
174 if (! defined $HTMLDIR) { $HTMLDIR = "$SUIFHOME/html"; }
175 if (! defined $MANDIR) { $MANDIR = "$SUIFHOME/man"; }
176 if (! defined $SCRIPTDIR) { $SCRIPTDIR = "$SUIFHOME/scripts"; }
177 if (! defined $TCLDIR) { $TCLDIR = "$SUIFHOME/tcl"; }
179 # machine-specific directories
180 if (! defined $MACHDIR) { $MACHDIR = "$SUIFHOME/$MACHINE"; }
181 if (! defined $INCLDIR) { $INCLDIR = "$MACHDIR/include"; }
182 if (! defined $BINDIR) { $BINDIR = "$MACHDIR/bin"; }
183 if (! defined $LIBDIR) { $LIBDIR = "$MACHDIR/lib"; }
184 if (! defined $SODIR) { $SODIR = "$MACHDIR/solib"; }
185 if (! defined $AUTOINITDIR) { $AUTOINITDIR = "$MACHDIR/auto_init_libs"; }
186 if (! defined $VERDATADIR) { $VERDATADIR = "$MACHDIR/verdata"; }
188 # different name is used by vbrowser
189 $VISUAL_TCL = $TCLDIR;
191 # purify stuff
192 if (! defined $PUREHOME) {
193 $PUREHOME = '/usr/local/pure';
195 $PURE = "$PUREHOME/purify";
196 if (defined $PURE_COLLECTOR) {
197 $PURE_FLAGS = "-collector=$PURE_COLLECTOR";
202 my $var;
203 foreach $var (@envvars) {
204 if (defined $ENV{$var}) {
205 if ($flag eq '-csh') {
206 print "setenv $var \'$ENV{$var}\';\n";
207 } elsif ($flag eq '-sh') {
208 print "export $var\n$var=\'$ENV{$var}\';\n";
209 } elsif ($flag eq '-perl') {
210 print '$' . "ENV{" . $var . "}=\'" . $ENV{$var} . "\';\n";
214 if ($limits_off) {
215 print "unlimit datasize;\n";