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 !'
|