INSTALACION 
=============
ltima rev:12/06/2002
J.Manrique: jsmanrique_lopez@yahoo.es


Vista rpida
===========
1/ Comprueba que el fichero /etc/ld.so.conf tiene la lnea
/usr/local/lib
si no es as, edtalo y aade esa lnea
2/ Consigue e instala GMP, FLTK 1.0 (no 1.1), FLVW y readline, opcionalmente GSL 
si quieres capacidades numricas, PARI para artimtica avanzada (mira el parche 
ms abajo), NTL para trabajo rpido con polinomios (ver configuracin compatible con giac abajo).
Mira en la seccin de requisitos section para las direcciones de descarga e instruccuiones.
3/ Ejecuta ldconfig como root para asegurarte que las libreras nuevas instaladas son reconocidas
en tu sistema
4/ Vete al directorio giac
Si quieres compilacin rpida, teclea respectivamente para tcsh o bash
  $ setenv CXXFLAGS -g
 $ export CXXFLAGS=-g
entonces
  $ ./configure
  $ make
hazte root
  # make install
  # ldconfig
* Divirtete!

Requisitos
=========
* Si quieres compilacin cruzada para la arquitectura ARM mira tambin en
el fichero src/README.ipaq
* Debes comprobar primero que tienes instalado GMP (disponible en cualquier ftp GNU
 o mirror, mira en  www.gnu.org, por ejemplo en  Espaa prueba ftp.rediris.es)
* Si quieres funciones numricas deberas instalar la Librera Cientfica GNU
 (http://sources.redhat.com/gsl)
* Si quieres usar NTL, consigue la versin >= 5.2 en http://www.shoup.net, 
comprueba que configuraste con namespace activado (no est activado
por defecto) y con GMP activado (no est por defecto, pero tampoco es obligatorio)
Si no ests seguro de tu instalacin, vete al directorio NTL y teclea
$ make clean
$ ./configure NTL_GMP_LIP=on NTL_STD_CXX=on
$ make
$ make install
* Si quieres funciones de aritmtica avanzada, consigue PARI en
http://www.parigp-home.de
Si planeas PARI SIN NTL entonces DEBES HACER LOS
SIGUIENTES ARREGLOS (parches) en el directorio fuente de PARI
Fichero src/basemath/polarit2.c borra la palabra static de la declaracin
static GEN 
combine_factors(...)
Fichero src/headers/paridecl.h
Aade 
GEN     combine_factors(GEN a, GEN famod, GEN p, long klim, long hint);
en la seccin polarit2.c
Recompila (make all) y reinstala PARI (make install y comprueba que
libpari.a ha sido actualizada o cpiala explcitamente desde el directorio O<os>)
Reemplaza en /usr/local/include/pari/pariinl.h labs por std::abs o podras
obtener errores de compilacin.
Comprueba en el directorio src de giac, el fichero pari.cc que la memoria reservada
a la pila de PARI se ajusta a tus necesidades (por defecto son 10MB de RAM) o modifica
  long pari_mem_size=10000000;
* Si quieres soporte GUI, comprueba que tengas FLTK 1.0 (o FLNX) instalado 
(disponible en http://www.fltk.org). Para la hoja de clculo y el editor de matrices
necesitas FLVW disponible en http://flvw.sourceforge.net/.
Adicionalmente puedes obtener modificaciones de B. Parisse para FLTK 1.0.11 en 
http://www-fourier.ujf-grenoble.fr/~parisse/fltkpar.tgz
esto aade auto-seleccin de parntesis.
NOTA Actualmente xcas no trabaja con FLTK 1.1.
* TeXmacs puede ser usado como interface con giac. 
Si tienes TeXmacs instalado (www.texmacs.org), despus de haber instalado giac,
ejecuta texmacs y usa Insert->Session->giac.
Si copias Init.scm en tu directorio ~/.TeXmacs/progs obtendrs
un men Cas para giac.
* Si quieres garbage collection, consigue la librera gc
http://www.hpl.hp.com/personal/Hans_Boehm/gc/
Despus borra todas las libreras de config.h excepto gmp (mira config.h.gc), 
aade #define HAVE_LIBGC 1
reemplaza malloc/realloc en input_parser.cc/input_lexer.cc por
GC_MALLOC_UNCOLLECTABLE y GC_realloc
rm -f *.o y mira en Makefile.fast por el objetivo cas2

INSTALACIN (UNIX)
===================
Como con cualquier software GNU auto-configurable, puedes teclear:

 $ ./configure 
[aade opciones necesarias: prueba ./configure -help para informacin sobre opciones,
mira la seccin OPCIONES DE INSTALACIN ms abajo]
 $ make
 $ make check
[hazte root si es necesario]
 # make install-strip

Alternativas o trucos:
------------------------
** Si ests actualizando giac para corregir errores, puedes ejecutar
  $ ./config.status 
en vez de ./configure, esto mantendr las mismas opciones de configuracin

** Si tienes permiso de escritura en /usr/local/, FLTK y GSL instalados y 
no quieres soporte de depuracin, puedes teclear
 $ ./inst

** Si tienes FLTK y GSL instalados y quieres soporte de depuracin, teclea
 $ ./setup
 $ su
 # make install

** Si no quieres optimizaciones, configura la variable de entorno CXXFLAGS
a -g antes de ejecutar configure
(tcsh) setenv CXXFLAGS -g
(bash) CXXFLAGS=-g

** Si slo quieres construir xcas,
 $ ./configure 
 $ cd src
 $ make -f Makefile.fast
Reemplaza -g por -O2 en Makefile.fast si quieres optimizaciones completas.

** Si quieres construir xcas para el iPaq con la distribucin Familiar
asumiendo que tienes la herramienta skiff instalada y FLTL instalado.
Comprueba que config.h define HAVE_LIBFLTK y no define HAVE_LIBGSL
y HAVE_LIBGSLCBLAS si no tienes estas libreras tambin, entonces
 $ make -f Makefile.ipaq
Nota que nunca se ha conseguido construir para el iPaq con optimizacin.

** Si quieres slo el cas en lnea de comandos, ejecuta
 $ ./configure --disable-gui
 $ make

INSTALACIN (WIN)
==================
Hay algn soporte para aquellos que deben usar Microsoft Windows (R). 
Asumiendo que tienes instalado las herramientas cygwin, gmp, FLTK, FLVW (mira 
http://sources.redhat.com/cygwin por cygwin, cualquier mirror GNU por gmp,  
http://www.fltk.org por FLTK), ejecuta cygwin,
vete al directorio giac-0.2.2 y
$ cp config.h.win config.h
o edita config.h y modifica para ajustarlo a tus necesidades, despus
vete al directorio src y ejecuta
$ make -f Makefile.win
Despus de ello, podras ejecutar xcas.exe, con /usr/bin/cygwin1.dll
copiado en el path (p.e. en el mismo directorio que xcas.exe)
Puedes compilar la versin librera de giac como en Unix usando
$ sh configure ; make 

PROBLEMAS
============
*Cygwin: error compilando sym2poly.cc
...sys/types.h ... no define nada
Borra las lneas #undef off_t de config.h.in y las lneas #define de config.h
* Si tienes un error sobre libtool no encontrada cuando ejecutas make, ejecuta
  $ ./ltconfig ltmain.sh
* Si has instalado recientemente una librera y parece que no es
reconocida, teclea
  $ rm config.cache
antes de ejecutar configure
* La optimizacin requiere mucha memoria para compilar. Si ests bajo de memoria
edita src/Makefile y si es necesario reemplaza la lnea :
CXXFLAGS = -g -O2
por :
CXXFLAGS = -g
* No ha sido posible compilar FLTK con gcc 3. Baja a 2.95 o 2.96
o reconfigura sin soporte FLTK o compila slo la versin en lnea de comandos
de giac (cd src; make -f Makefile.fast cas).
Si tienes problemas compilando plot.cc con gcc 3, borra #define WITH_GNUPLOT
de config.h
* Si tienes un error como
autoheader: Symbol 'CONSTANT_DEBUG_SUPPORT' is not covered by ...
ejecuta
autoheader --localdir=.
* Si tienes un error cuando compiles modpoly.cc, es casi seguro porque
compilaste NTL sin namespaces. Recomplalo (mira la seccin de Requisitos
ms arriba)
* Si tienes un error de enlazador sobre combine_factors no encontrados en modfactor.o
es porque no modificaste PARI correctamente u olvidaste re-instalar las 
libreras PARI
* Compilar Giac con Cygwin con PARI 2.1.1 requiere hacer algn
arreglo. No ha sido posible obtener la versin dinmica de la librera PARI.
Por ello ha tenido que hacerse la instalacin a mano:
cp libpari.a /usr/local/lib
mkdir /usr/local/include/pari
cp src/headers/*.h /usr/local/include/pari 
cp Ocygwin/*.h /usr/local/include/pari 
Entoneces se obtuvo un error compilando pari.cc que desapareci comentando
la lnea ofensiva en la cabecera /usr/local/include/pari/paricom.h
Despus de esto, todo ha ido correctamente.
* Si tu instalacin de cygwin falta de soporte de internacionalizacin (tendrs
errores sobre #include <libintl.h> en plotfltk.h)
debes modificar xcas.fl para quitar el soporte para internacionalizacin support, ejecuta
fluid xcas.fl
men Edit->Preferences, deselecciona gettext y escoge None
(El programa fluid.exe debera estar en tu directorio fuente fltk-1.0.x, en el
subdirectorio fluid)
Despus edita plotfltk.h y comenta 
#include <locale.h>
#include <libintl.h>
as como la definicin de la clase object_bidon
Edita plotfltk.cc y comenta
   objet_bidon mon_objet_bidon;

DOCUMENTACIN
=================
 Si quieres alguna documentacin, vete al directorio doc
 $ cd doc
 y teclea

 $ make dvi

NOTAS
=======
Al final de la compilacin, deberas tener:
* xcas, cas, aide (programas) in /usr/local/bin
* un montn de enlaces a cas
* las libreras libgiac en /usr/local/lib 
* los ficheros include en /usr/local/include/giac
* el fichero ayuda en-lnea es /usr/local/share/aide.cas

OPCIONES DE INSTALACIN
==========================
Cuando ejecutas
./configure 
las siguientes opciones estn admitidas
1/ --enable-debug
  Permite imprimir vectores y aade algn cdigo de depuracin
2/ --enable-fltk
  Soporte para GUI 
3/ --enable-gsl
  Usa la Librera Cientfica GNU para coma flotante (p.e. funciones especiales..)
4/ --enable-sscl
  Permite la inclusin de cdigo para algortmos semi-clsicos (producto Moyal, ...)
  No disponible todava
5/ --enable-ntl
  Permite la inclusin de cdigo NTL
6/ --enable-pari
  Permite la inclusin de cdigo PARI
Estas opciones pueden ser desactivadas usando  --disable-nombre-opcin en vez de
--enable-nombre-opcin. Por defecto configure usar estas opciones si
las libreras estn disponibles en tu sistema.
Para conseguir binarios mas rpidos haz (bash)
$ export CXXFLAGS="-O3 -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2"
o (tcsh)
$ setenv CXXFLAGS "-O3 -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2"
Asegrate de configurar sin soporte de depuracin (por defecto) y compilar estticamente.
