File: Configure

package info (click to toggle)
pari 2.9.1-1
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 18,264 kB
  • ctags: 16,155
  • sloc: ansic: 203,761; sh: 853; perl: 376; yacc: 202; makefile: 129
file content (213 lines) | stat: -rwxr-xr-x 6,192 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
#! /bin/sh
#
# This file is part of the PARI/GP package.
#
# PARI/GP is free software; you can redistribute it and/or modify it under the
# terms of the GNU General Public License as published by the Free Software
# Foundation. It is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY WHATSOEVER.
#
# Check the License for details. You should have received a copy of it, along
# with the package; see the file 'COPYING'. If not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

# Configuration file for GP/PARI.  Run Configure --help for Usage.
#
# Perl's Configure and GNU autoconfig were of much help in writing these files.
# $Id$

TOP=`pwd`
MAKE=${MAKE:-make}
config_dir=config
data_dir=data
doc_dir=doc
examples_dir=examples
misc_dir=misc
src_dir=src
desc_dir=src/desc

case "$RUNTEST" in /*);; */*) RUNTEST="$TOP/$RUNTEST";; esac

cd $config_dir
# Process options, initialize
. ./get_head # do we need head -n # or head -# ?
. ./version
echo "Configuring pari-$pari_release_verbose $patchlevel_verbose"
command_line0="$0 $@"
. ./get_config_options
####################### CONFIGURE - SHELL ###################################
. ./get_nl # how to get echo without \n ? (for config questions)
. ./get_PATH
#  We might need the following :
echo Looking for some tools first ...
_tools_list='gzip cc gcc ld perl zcat'
pathspace=`echo $PATH | sed -e "s/$dir_sep/ /g" | sed -e 's,\\\\,/,g'`

for file in $_tools_list; do
  x=`./locate $file '' $pathspace`
  eval $file=$x
  case $x in
# support also DOS filesystems (hard drive prepended)
   ?:/*|/*) echo ..."$file is $x";;
      *) echo ..."I could not find $file." >&2;;
  esac
done
if test -z "$zcat" -a -n "$gzip"; then zcat="$gzip -dc"; fi

####################### CONFIGURE - ARCHITECTURE ############################
. ./get_archos # arch, osname
config_log="$TOP/config-$arch-$osname$$.log"
cat > $config_log<< EOT
This file contains messages produced while configuring
  pari-$pari_release $patchlevel_verbose
to aid debugging if Configure makes a mistake. Command line was
  > $command_line0

EOT
exec 5>> $config_log

####################### CONFIGURE - COMPILATION #############################
# $_cc_list (includes 'optimization'), extraflag
. ./get_cc
#
. ./get_mt
# doubleformat, sizeof_long
. ./get_double_format
# asmarch, pretty
. ./get_kernel
# _dl_list, DLCFLAGS, update CFLAGS
. ./get_dlcflags
# $_ld_list
. ./get_ld
# $_dlld_list
. ./get_dlld
# $_perl_list
. ./get_perl
####################### CONFIGURE - LIBC ####################################
. ./get_libc # $_has_list, RT_LIBS, DL_LIBS
####################### CONFIGURE - LIBRARIES ###############################
# Looking for libraries: gmp, X11, fltk, Qt, readline
echo Checking for optional libraries and headers...
# $_gmp_list
if test "$kernlvl1" = "gmp"; then
  . ./get_gmp
fi
# $_graphic_list
. ./get_graphic_lib
# $_readline_list (includes 'readline')
case "$without_readline" in
  yes);;
  *) . ./get_readline
esac
#############################################################################
case $kernlvl1 in
gmp) libpari_base=pari-gmp;;
none) libpari_base=pari;;
esac
case $enable_tls in
yes) libpari_base="${libpari_base}-tls"
esac

if test `expr $VersionMinor % 2` = 0; then
  libpari_base=$libpari_base-$version
fi

####################### CONFIGURE - MAKE ####################################
. ./get_install # $_install_list
. ./get_objdir  # objdir, cdobjdir
. ./get_static  # static
# For dynamic linking, before and after installing
runpath=\"$libdir\"
LDDYN="-lpari"
# get_modld needs $includedir from get_install, static, and LDDYN
. ./get_modld   # $_modld_list

# Which copy, SHELL ?
case "$osname" in
  os2) ln_s=cp;      make_sh=sh;;
  *)   ln_s="ln -s"; make_sh="/bin/sh";;
esac
####################### CONFIGURE - CLEANUP #################################
rm -f gmon.out # created by Configure -pg
rm -f *.gcno *.gcda # created by Configure -gcov
####################### CONFIGURE - SPIT ####################################
. ./get_tests #_test_list
# Now spit out the results
cat << EOT
==========================================================================
EOT
cd "$TOP"
if test ! -d $objdir; then mkdir -p $objdir; fi
rm -f $objdir/config.log; mv $config_log $objdir/config.log
dflt_conf_file=$objdir/$dflt_conf_file

cat > $dflt_conf_file << EOT
# Config file for Pari $release -- $pretty

EOT
case "$osname" in
  os2|mingw) shell_q='"'; echo "shell_q='\"'"  >> $dflt_conf_file;;
    *) shell_q="'"; echo "shell_q=\"'\"" >> $dflt_conf_file;;
esac

for variable in\
  pari_release pari_release_verbose version libpari_base static objdir\
  arch asmarch osname pretty\
  kernlvl0 kernlvl1 RT_LIBS DL_LIBS MT_LIBS LIBS\
  dir_sep runpath runpathprefix LDDYN RUNTEST\
  ln_s make_sh\
  sizeof_long doubleformat\
  thread_engine enable_tls\
  runtime_perl\
  $_tools_list\
  $_test_list\
  $_install_list\
  $_perl_list\
  $_cc_list\
  $_ld_list\
  $_dl_list\
  $_dlld_list\
  $_graphic_list\
  $_modld_list\
  $_readline_list\
  $_gmp_list\
  $_has_list; do
  eval "echo $variable=\'"'$'"$variable\'" \>\> $dflt_conf_file
done

. $config_dir/extract_files

#  Building...
cat << EOT
==========================================================================
EOT

if test -n "$tune"; then
  echo "Building and tuning PARI (this may take a while)"
  echo
  (cd $objdir; rm -f parilvl1.h pariinl.h;\
  $MAKE tune && tune -t > tune.h.new && mv tune.h.new tune.h && cat tune.h\
    && rm -f parilvl1.h pariinl.h && $MAKE gp)
else
  echo $n "Shall we try to build pari $version.$patch ($status) now (y/n)? $c"
  dflt=n; rep='y n'; . $config_dir/myread
fi

mkobjdir=`$config_dir/objdir`
cdobjdir=
if test "$objdir" != "$mkobjdir"; then
  cdobjdir="cd $objdir; "
fi

case $ans in
y) if (cd $objdir; $MAKE gp); then
     echo $n "Shall we install the files where they belong (y/n)? $c"
     dflt=n; rep='y n'; . $config_dir/myread
     case $ans in
       y) $MAKE install;;
       n) echo "Ok. Type \"${cdobjdir}make install\" when you are ready";;
     esac
   fi;;
n) echo "Ok. Type \"${cdobjdir}make install\" when you are ready";;
esac
echo 'Bye !'