Ceci est une ancienne révision du document !
installation des binaires
- sur calypso et t2000
- Utilisation: /usr/local/Macaulay2-0.9.2/bin/M2
compilation version stable
- compilé sur nemo, version 0.9.95
- en 32 bits pour commencer
- options de compilation, voir scripts do_work.sh dans chaque répertoire
- blas et lapack font partie de la Sun Perf Lib (–with-lapacklibs=“-lsunperf”)
Les librairies nécessaires
nom | archive | installée dans | logs |
---|---|---|---|
Singular-Factory | factory-3-0-2.tar.gz | /local/henry/logiciels/{lib,include} | /local/henry/factory/{WORK,MAKE_GFTABLES,INSTALL}.LOG |
Singular-Libfac | libfac-3-0-2.tar.gz | /local/henry/logiciels/{lib,include} | /local/henry/libfac/WORK.LOG |
gmp | 4.2.1 | /opt/csw/(lib,include) | |
gc | gc-7.0.tar.gz | /local/henry/logiciels/{lib,include} | /local/henry/gc-7.0/{WORK,CHECK}.LOG |
gdbm | 1.8.3 | /opt/csw/(lib,include) | |
ntl or Singular-ntl | ntl-5.4.1.tar.gz | /local/henry/logiciels/{lib,include} | /local/henry/ntl-5.4.1/src/{MAKE,INSTALL}.LOG |
compilation version stable (tout est recompilé)
- version 0.9.95
- en 32 bits
- options de compilation, voir scripts do_work.sh dans chaque répertoire
- blas et lapack font partie de la Sun Perf Lib (–with-lapacklibs=“-lsunperf”)
Les librairies nécessaires
nom | archive | installée dans | logs |
---|---|---|---|
Singular-Factory | factory-3-0-2.tar.gz | /local/henry/logiciels/{lib,include} | /local/henry/factory/{WORK,MAKE_GFTABLES,INSTALL}.LOG |
Singular-Libfac | libfac-3-0-2.tar.gz | /local/henry/logiciels/{lib,include} | /local/henry/libfac/WORK.LOG |
gmp | 4.2.2 | /local/henry/logiciels/{lib,include} | /local/henry/gmp-4.2.2/WORK.LOG |
gc | gc-7.0.tar.gz | /local/henry/logiciels/{lib,include} | /local/henry/gc-7.0/{WORK,CHECK}.LOG |
gdbm | 1.8.3 | /local/henry/logiciels/{lib,include} | /local/henry/gdbm-1.8.3/WORK.LOG |
readline | 5.2 | /local/henry/logiciels/{lib,include} | /local/henry/readline-5.2/WORK.LOG |
ncurses | 5.6 | /local/henry/logiciels/{lib,include} | /local/henry/ncurses-5.6/WORK.LOG |
ntl or Singular-ntl | ntl-5.4.1.tar.gz | /local/henry/logiciels/{lib,include} | /local/henry/ntl-5.4.1/src/{MAKE,INSTALL}.LOG |
La compilation échoue:
../c/scc1 -dep -J. ../../../Macaulay2/d/C.d ../../../Macaulay2/c/chk.c:2512: assertion failed ../../../Macaulay2/c/readfile.c:273: <- here make[2]: *** [C.dep] Error 1 make[2]: Leaving directory `/local/henry/M2/BUILD/Macaulay2/d'
version svn
nemo-dgrayson% svn co svn://macaulay2.math.uiuc.edu/Macaulay2/trunk/M2 ... Checked out revision 5981. nemo-dgrayson% cd M2 /home/dgrayson/M2 nemo-dgrayson% make + autoconf + rm -f include/config.h.in.stamp autoheader touch "include/config.h.in.stamp" --: The configure script in this directory has been prepared. --: To configure and build Macaulay 2: --: mkdir BUILD/normal cd BUILD/normal ../../configure --prefix=/usr/local make install --: --: To reconfigure and try again: --: cd BUILD/normal make reconfigure install --: --: To see all the options to "configure": --: ./configure --help --:
1er problème: ne détecte pas la lib factory:
conftest.cpp:6: error: `SW_USE_NTL' undeclared (first use this function)
avec le code suivant:
#include <factoryconf.h> extern const char * libfac_version; int main () { extern const char factoryVersion[]; return SW_USE_NTL; return *factoryVersion; return *libfac_version; }
mais SW_USE_NTL n'est déclaré nulle part! (grep -r SW_USE_NTL *). On le supprime!
Voir les modifs sur le configure.ac
diff ../../configure.ac ../../configure.ac.ori 413c413 < do eval BUILD_$i=yes --- > do eval BUILD_$i=no 531,532c531,532 < test $BUILD_blas = yes && BUILTLIBS="-lsunperf $BUILTLIBS" < test $BUILD_lapack = yes && BUILTLIBS="-lsunperf $BUILTLIBS" --- > test $BUILD_blas = yes && BUILTLIBS="-lblas $BUILTLIBS" > test $BUILD_lapack = yes && BUILTLIBS="-llapack $BUILTLIBS" 551a552 > return SW_USE_NTL; 591,594c592,595 < #for i in $LIBLIST < #do eval t=\$BUILD_$i < # test "$t" = yes && LIBRARIES="$LIBRARIES $i" < #done --- > for i in $LIBLIST > do eval t=\$BUILD_$i > test "$t" = yes && LIBRARIES="$LIBRARIES $i" > done
et enfin, obligé de relinker /bin/sh sur /bin/bash (au lieu de /sbin/sh) sinon le make échoue immédiatement (grrr!)
Nouvelle erreur:
../../../../../Macaulay2/e/f4/../mem.hpp:123: error: `bzero' undeclared (first use this function)
pourquoi utiliser bzero() au lieu de memset()? bzero On remplace:
nemo-henry% cp -rp Macaulay2/e/f4/../mem.hpp Macaulay2/e/f4/../mem.hpp.ori nemo-henry% diff Macaulay2/e/f4/../mem.hpp.ori Macaulay2/e/f4/../mem.hpp 7a8,9 > #define bzero(b,len) (memset((b), '\0', (len)), (void) 0) >
et toujours l'erreur:
../../../../Macaulay2/e/ntl-interface.cpp:56: error: expected unqualified-id before numeric constant ../../../../Macaulay2/e/ntl-interface.cpp:56: error: expected `,' or `;' before numeric constant
corrigée par:
nemo-henry% diff Macaulay2/e/ntl-interface.cpp Macaulay2/e/ntl-interface.cpp.ori 56,58d55 < #if defined(__sun) && defined(__SVR4) < #undef GS < #endif
Problèmes
compilation de gmp
par défaut, le “make check” échoue pour gmp.
compilation de ntl
bien entendu, le configure ne prend pas tout en compte, du coup:
./configure PREFIX=$HOME/logiciels/64 \ GMP_PREFIX=$HOME/logiciels/64 \ NTL_GMP_LIP=on NTL_STD_CXX=on NTL_NO_INIT_TRANS=on NTL_CXX_ONLY=on \ CC=c++ \ CFLAGS="-m64" \ LDFLAGS="-m64 -R/usr/sfw/lib/64 -R$HOME/logiciels/64/lib" \
compilation de factory
LDFLAGS='-R$HOME/logiciels/64/lib -L$HOME/logiciels/64/lib' \ CFLAGS="-O0 -g -m64" \ CXXFLAGS="-g -O0 --no-rtti --no-exceptions -m64" \ LDFLAGS="-m64 -R/usr/sfw/lib/64 -R$HOME/logiciels/64/lib" \ ./configure --prefix=$HOME/logiciels/64 \ --enable-NTL \ --with-gmp=$HOME/logiciels/64/include,$HOME/logiciels/64/lib
compilation de macaulay2
cette erreur:
** compiling ../../../Macaulay2/e/ntl_interface.cpp ../../../Macaulay2/e/ntl_interface.cpp:56: error: expected unqualified-id before numeric constant ../../../Macaulay2/e/ntl_interface.cpp:56: error: expected `,' or `;' before numeric constant make[2]: *** [ntl_interface.o] Error 1
se résoud de la façon suivante:
nemo-henry% cp -rp ../Macaulay2/e/ntl_interface.cpp ../Macaulay2/e/ntl_interface.cpp.ori nemo-henry% diff ../Macaulay2/e/ntl_interface.cpp.ori ../Macaulay2/e/ntl_interface.cpp 55a56 > #undef GS