
Esto es Expat, una biblioteca de C para analizar XML, iniciada por James Clark en 1997. Expat es un analizador XML orientado a flujo. Esto significa que registras manejadores con el analizador antes de comenzar el análisis. Estos manejadores se llaman cuando el analizador descubre las estructuras asociadas en el documento que se está analizando. Una etiqueta de inicio es un ejemplo del tipo de estructuras para las que puedes registrar manejadores.
Los usuarios de Windows deben usar el
paquete expat_win32,
que incluye tanto bibliotecas y ejecutables precompilados, como código fuente para
desarrolladores.
Expat es software libre.
Puedes copiarlo, distribuirlo y modificarlo bajo los términos de la Licencia
contenida en el archivo
COPYING
distribuido con este paquete.
Esta licencia es la misma que la licencia MIT/X Consortium.
Si estás compilando Expat desde una copia del repositorio Git, necesitas ejecutar un script que genere el script configure utilizando las herramientas GNU autoconf y libtool. Para hacer esto, necesitas tener autoconf 2.58 o más reciente. Ejecuta el script así:
./buildconf.sh
Una vez hecho esto, sigue las mismas instrucciones que para compilar desde una distribución de código fuente.
Para compilar Expat desde una distribución de código fuente, primero ejecutas el script de shell de configuración en el directorio de nivel superior de la distribución:
./configure
Hay muchas opciones que puedes proporcionar a configure (que puedes
descubrir ejecutando configure con la opción --help). Pero la
de mayor interés es la que establece el directorio de instalación.
De forma predeterminada, el script configure configurará las cosas para instalar
libexpat en /usr/local/lib, expat.h en /usr/local/include, y
xmlwf en /usr/local/bin. Si, por ejemplo, prefieres instalar
en /home/me/mystuff/lib, /home/me/mystuff/include, y
/home/me/mystuff/bin, puedes indicárselo a configure con:
./configure --prefix=/home/me/mystuff
Otra opción interesante es habilitar el soporte de enteros de 64 bits para números de línea y columna y el índice de bytes general:
./configure CPPFLAGS=-DXML_LARGE_SIZE
Sin embargo, tal modificación sería un cambio incompatible con la ABI y por lo tanto no se recomienda para uso general — p. ej. como parte de una distribución de Linux — sino para compilaciones con requisitos especiales.
Después de ejecutar el script configure, el comando make compilará todo
y make install instalará todo en su ubicación adecuada.
Echa un vistazo al Makefile para conocer opciones adicionales de make.
Ten en cuenta que necesitas tener permiso de escritura en
los directorios en los que se instalarán las cosas.
Si estás interesado en compilar Expat para proporcionar información
de documentos en codificación UTF-16 en lugar de la UTF-8 predeterminada, sigue
estas instrucciones (después de haber ejecutado make distclean).
Ten en cuenta que configuramos con --without-xmlwf ya que xmlwf no
soporta este modo de compilación (aún):
Parchea masivamente los archivos Makefile.am para usar libexpatw.la como nombre de biblioteca:
find -name Makefile.am -exec sed -e 's,libexpat\.la,libexpatw.la,' -e 's,libexpat_la,libexpatw_la,' -i {} +
Ejecuta automake para reescribir los archivos Makefile.in:
automake
Para salida UTF-16 como unsigned short (y cadenas de versión/error como char),
ejecuta:
./configure CPPFLAGS=-DXML_UNICODE --without-xmlwf
Para salida UTF-16 como wchar_t (incl. cadenas de versión/error), ejecuta:
./configure CFLAGS="-g -O2 -fshort-wchar" CPPFLAGS=-DXML_UNICODE_WCHAR_T --without-xmlwf
Nota: Esto último también requiere libc compilada con -fshort-wchar.
Ejecuta make (que excluye xmlwf).
Se soporta DESTDIR. Funciona de la siguiente manera:
make install DESTDIR=/path/to/image
sobrescribe el DESTDIR establecido en el Makefile, porque la prioridad de asignación de variables es
Nota: Esto solo aplica a la biblioteca Expat en sí; actualmente no se soporta la compilación de versiones UTF-16 de xmlwf y las pruebas.
Cuando uses Expat con un proyecto que use autoconf para la configuración, puedes
usar la macro de sondeo en conftools/expat.m4 para determinar cómo
incluir Expat. Consulta los comentarios al inicio de ese archivo para más
información.
Hay un manual de referencia disponible en el archivo doc/reference.html en esta
distribución.
Ejecuta make install (de nuevo, excluye xmlwf).