Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
# Exported variables _cc_list="__gnuc__ CC CFLAGS optimization DBGFLAGS OPTFLAGS exe_suff suffix ASMINLINE KERNELCFLAGS" # Which optimization ? if test "$fastread" != yes; then cat << EOT ========================================================================== The default is to fully optimize the compilation. You may choose to build an executable for debugging or profiling instead. Choose among : full debugging profiling gcov EOT echo $n ..."Which optimization do you prefer ? $c" dflt=$optimization; rep='full debugging profiling gcov'; . ./myread optimization=$ans fi case "$osname" in os2) exe_suff=.exe; extraflag="-Zexe";; emscripten) exe_suff=.js;; cygwin|mingw) exe_suff=.exe; extraflag="";; # On Darwin, by default, the full library search path is searched for a .dylib # before a .a can be considered, preventing users to install their libraries # in a simple way (e.g. the readline / Editline conflict). Override this. darwin) exe_suff=; extraflag=-Wl,-search_paths_first;; *) exe_suff=; extraflag="";; esac if test -z "$CC"; then echo Choosing C compiler ... if test -n "$gcc"; then CC=$gcc; else CC=$cc; fi fi if test "$fastread" != yes; then cat << EOT ========================================================================== Only ANSI C and C++ compilers are supported. Choosing the GNU compiler gcc/g++ enables the inlining of kernel routines (about 20% speedup; if you use g++, include the -fpermissive flag). We strongly recommand using gcc all the way through. EOT echo $n ..."Which C compiler shall I use ? $c" dflt=$CC; rep=; . ./myread CC=$ans fi if test -z "$CC"; then cat <<EOT ### ### Could not find a C compiler. Please install cc/gcc or set \$CC ### EOT exit 1; fi exe=$osname-$arch-ansi$$$exe_suff cmd="$CC $CFLAGS $extraflag -o $exe ansi.c"; . log_cmd if test -s $exe; then $RUNTEST $exe fi if test $? != 0 -o ! -s $exe; then cat << EOT ### ### C compiler does not work. PARI/GP requires an ANSI C compiler! Aborting. ### ### Compiler was: $CC $CFLAGS $extraflag EOT exit 1; fi . cleanup_exe if test "$CC" != "$gcc"; then __gnuc__=; fi if test -z "$__gnuc__"; then exe=$osname-$arch-gnu$$$exe_suff cmd="$CC $extraflag -o $exe gnu.c" . log_cmd if $RUNTEST $exe; then # avoid internationalization trouble by setting LANG=C __gnuc__=`env LANG=C LC_ALL=C LC_MESSAGES=C PATH="$PATH" $CC -v 2>&1 |\ grep ' version ' | tr '\n' , | sed -e 's/ *,$//' |\ sed -e 's/(.*) *\((.*)\)/\1/'` echo GNU compatible compiler: $__gnuc__ fi . cleanup_exe fi # Which Flags for Compiler ? cflags= ASMINLINE= if test -n "$__gnuc__"; then __GNUC__="-D__GNUC__" warn="-Wall" OPTFLAGS=-O3 ASMINLINE=yes OPTFLAGS="$OPTFLAGS $warn" cmd="$CC $CFLAGS $extraflag -ffp-contract=off -o $exe gnu.c" . log_cmd if test -s $exe; then OPTFLAGS="$OPTFLAGS -ffp-contract=off" fi . cleanup_exe cmd="$CC $CFLAGS $extraflag -fno-strict-aliasing -o $exe gnu.c" . log_cmd if test -s $exe; then OPTFLAGS="$OPTFLAGS -fno-strict-aliasing" fi . cleanup_exe case "$optimization" in full) KERNELCFLAGS=-funroll-loops;; esac DBGFLAGS=${DBGFLAGS:-"-g $warn"} # Specific optimisations for some architectures case "$arch" in sparcv8*) cflags=-mv8;; i?86) cmd="$CC $CFLAGS $extraflag -mpc64 -fno-strict-aliasing -o $exe gnu.c" . log_cmd if test -s $exe; then cflags="-mpc64" fi . cleanup_exe;; esac # problems on some architectures case "$osname" in os2) cflags="$cflags -Zmt -Zsysv-signals";; nextstep) cflags="$cflags -traditional-cpp";; esac PRFFLAGS="-pg $OPTFLAGS" GCOVFLAGS="-fprofile-arcs -ftest-coverage" else DBGFLAGS=${DBGFLAGS:-'-g'} PRFFLAGS='-pg' case "$osname-$arch" in hpux-*) # -Ae is for ANSI C + defines HPUX_SOURCE OPTFLAGS=-O; cflags=-Ae;; aix-*) OPTFLAGS='-O2 -qtune=auto -qmaxmem=8192' cflags='-qlanglvl=ansi';; osf1-*) OPTFLAGS='-O4 -migrate -ifo -Olimit 9999';; sunos-*) OPTFLAGS=-fast; PRFFLAGS='-pg -Bstatic';; solaris-*) OPTFLAGS='-fast -fsimple=1'; PRFFLAGS=-xpg; case "$arch" in sparc*) OPTFLAGS="$OPTFLAGS -xalias_level=any";; esac;; concentrix-*) OPTFLAGS=-Ogi;; *) OPTFLAGS=-O;; esac PRFFLAGS="$PRFFLAGS $OPTFLAGS" fi case "$optimization" in full) suffix=; cflags="$OPTFLAGS $cflags";; profiling) suffix=.prf; cflags="$PRFFLAGS $cflags";; debugging) suffix=.dbg; cflags="-DMEMSTEP=1048576 $DBGFLAGS $cflags";; gcov) suffix=.gcov; cflags="$GCOVFLAGS $cflags";; esac CFLAGS="$cflags $CFLAGS $CPPFLAGS" if test "$fastread" != yes; then echo $n ..."With which flags ? $c" dflt=$CFLAGS; rep=; . ./myread CFLAGS=$ans fi