add $(EXEEXT) to executable targets during installation for MinGW
[suif.git] / setup_suif
bloba8acdab294b27f1cb4a2847cbbb61b8dcf7d9709
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 if (! (defined $MACHINE)) {
84 $MACHINE = `./config.guess`;
85 chomp $MACHINE;
88 if (defined $COMPILER_NAME) {
89 if (($MACHINE =~ m/^sparc-sun-solaris[.0-9]*$/) &&
90 ($COMPILER_NAME eq 'sun_procompiler')) {
91 $MACHINE="${MACHINE}-sunpro";
92 } elsif (($MACHINE eq 'mips-sgi-irix5.3') &&
93 ($COMPILER_NAME =~ m/^gcc/)) {
94 $MACHINE="${MACHINE}-gcc";
96 } elsif ($MACHINE eq "mips-sgi-irix5.3") {
97 $COMPILER_NAME='sgi_c++';
98 } elsif ($MACHINE =~ m/^i386-.*-solaris2.4$/) {
99 $COMPILER_NAME='sun_procompiler';
100 } elsif ($MACHINE eq 'i586-linux') {
101 $COMPILER_NAME='egcs';
102 $CC_OVERRIDE='gcc';
103 $CXX_OVERRIDE='g++';
104 } else {
105 $COMPILER_NAME='gcc';
106 $CC_OVERRIDE='gcc';
107 $CXX_OVERRIDE='g++';
110 if (defined $MANPATH) {
111 if (! ($MANPATH =~ m/$SUIFHOME\/man/)) {
112 $MANPATH="$SUIFHOME/man:$MANPATH";
114 } else {
115 $MANPATH="$SUIFHOME/man";
118 if (defined $LD_LIBRARY_PATH) {
119 $LD_LIBRARY_PATH="$SUIFHOME/$MACHINE/solib:$LD_LIBRARY_PATH";
120 } else {
121 $LD_LIBRARY_PATH="$SUIFHOME/$MACHINE/solib";
124 # put ultra dirs in paths
125 if (! ($PATH =~ m,/usr/local/ultra/bin,)) {
126 $PATH = "/usr/local/ultra/bin:$PATH";
128 if (! ($LD_LIBRARY_PATH =~ m,/usr/local/ultra/lib,)) {
129 $LD_LIBRARY_PATH = "/usr/local/ultra/lib:$LD_LIBRARY_PATH";
132 # put SUIFHOME dirs in path
133 if (! ($PATH =~ m/$SUIFHOME\/$MACHINE\/bin/)) {
134 $PATH = "$SUIFHOME/scripts:$SUIFHOME/$MACHINE/bin:$PATH";
136 if (!defined $SUIFPATH) {
137 $SUIFPATH = "$SUIFHOME/scripts:$SUIFHOME/$MACHINE/bin";
138 } elsif (! ($SUIFPATH =~ m/$SUIFHOME\/$MACHINE\/bin/)) {
139 $SUIFPATH = "$SUIFHOME/scripts:$SUIFHOME/$MACHINE/bin:$SUIFPATH";
142 # For the vbrowser, we need to include <tcl.h>, which isn't in
143 # /usr/include on all our machines. The following handles that issue.
145 if ($MACHINE eq 'mips-sgi-irix5.3') {
146 $TCL_INCLUDE_FLAGS = '-I/usr/local/include';
147 } elsif ($MACHINE eq 'sparc-sun-solaris2.3') {
148 $TCL_INCLUDE_FLAGS = '-I/usr/openwin/include -DTK4_1 -L/usr/openwin/lib';
149 } elsif ($MACHINE =~ m/^i386-.*-solaris2.4$/) {
150 $TCL_INCLUDE_FLAGS =
151 '-I/usr/local/include -I/usr/openwin/include -L/usr/local/lib -L/usr/openwin/lib';
152 } elsif ($MACHINE =~ m/^sparc-sun-solaris/) {
153 $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';
154 } elsif ($MACHINE eq 'alpha-dec-osf3.2') {
155 $TCL_INCLUDE_FLAGS = '-I/usr/local/ultra/include -L/usr/local/ultra/lib';
156 } elsif ($MACHINE =~ m/linux/) {
157 $TCL_INCLUDE_FLAGS = '-L/usr/X11R6/lib'
160 # shared directories
161 if (! defined $SRCDIR) { $SRCDIR = "$SUIFHOME/src"; }
162 if (! defined $INFODIR) { $INFODIR = "$SUIFHOME/info"; }
163 if (! defined $DOCDIR) { $DOCDIR = "$SUIFHOME/docs"; }
165 if (! defined $HTMLDIR) { $HTMLDIR = "$SUIFHOME/html"; }
166 if (! defined $MANDIR) { $MANDIR = "$SUIFHOME/man"; }
167 if (! defined $SCRIPTDIR) { $SCRIPTDIR = "$SUIFHOME/scripts"; }
168 if (! defined $TCLDIR) { $TCLDIR = "$SUIFHOME/tcl"; }
170 # machine-specific directories
171 if (! defined $MACHDIR) { $MACHDIR = "$SUIFHOME/$MACHINE"; }
172 if (! defined $INCLDIR) { $INCLDIR = "$MACHDIR/include"; }
173 if (! defined $BINDIR) { $BINDIR = "$MACHDIR/bin"; }
174 if (! defined $LIBDIR) { $LIBDIR = "$MACHDIR/lib"; }
175 if (! defined $SODIR) { $SODIR = "$MACHDIR/solib"; }
176 if (! defined $AUTOINITDIR) { $AUTOINITDIR = "$MACHDIR/auto_init_libs"; }
177 if (! defined $VERDATADIR) { $VERDATADIR = "$MACHDIR/verdata"; }
179 # different name is used by vbrowser
180 $VISUAL_TCL = $TCLDIR;
182 # purify stuff
183 if (! defined $PUREHOME) {
184 $PUREHOME = '/usr/local/pure';
186 $PURE = "$PUREHOME/purify";
187 if (defined $PURE_COLLECTOR) {
188 $PURE_FLAGS = "-collector=$PURE_COLLECTOR";
193 my $var;
194 foreach $var (@envvars) {
195 if (defined $ENV{$var}) {
196 if ($flag eq '-csh') {
197 print "setenv $var \'$ENV{$var}\';\n";
198 } elsif ($flag eq '-sh') {
199 print "export $var\n$var=\'$ENV{$var}\';\n";
200 } elsif ($flag eq '-perl') {
201 print '$' . "ENV{" . $var . "}=\'" . $ENV{$var} . "\';\n";
205 if ($limits_off) {
206 print "unlimit datasize;\n";