Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porAntonio Sánchez Castro Modificado hace 8 años
1
Estructura del Proyecto
2
Agenda ● Estructura de un proyecto GNU. ● Contenido de archivos. ● Autoconf ● Automake ● Internacionalizacion ● intltool
3
Estructura de un proyecto GNU ● Estandar de ordenamiento de la FSF. ● Archivos se dividen en: – Informacion Obligatorios. – Informacion Opcionales. – Programas y configuracion.
4
Archivos de Informacion Obligatorios ● NEWS: Informacion con los cambios mas recientes. ● README: Descripcion general. ● AUTHORS: Lista de quienes han trabajado en el desarrollo. ● Changelog: Registro de todos los cambios que se han realizado. ● COPYNG: Especifica los derechos otorgados sobre la aplicacion. (GPL) ● INSTALL: Instrucciones de instalacion.
5
Archivos de Informacion Opcionales ● MAINTAINERS: Lista de responsables del proyecto. ● HACKING: Instrucciones para otros desarrolladores que quieran contribuir. ● VERSION: Indica la version del programa. ● THANKS: Credito a las personas que han contribuido. ● TODO: Directrices del desarrollo del proyecto.
6
Archivos de Programa y Configuracion ● configure.in: Reglas de verificacion y construccion del proyecto. ● Makefile.am: Entrada del programa automake, y sirve para generar archivos Makefile. ● src/: Directorio donde se almacena el codigo fuente(proyectos simples). ● autogen.sh: Scripts para automatizar la llamada de los archivos descritos, pero no es obligatorio.
7
Uso de Herramientas de Autoconfiguracion ● Directrices: – Las herramientas trabajan en torno a los archivos configure.in y Makefile.am – La definicion de estos archivos guia el funcionamiento de los programas de automatizacion. – Secuencia de comandos: aclocal, autoheader, autoconf y automake – La secuencia anterior genera el script configure y varias plantillas.in
8
configure.in ● Esta compuesta de macros. ● Las macros con prefijo AC_ hacen referencia a autoconf. ● Las macros con prefijo AM_ hacen referencia a automake.
9
Ejemplo 1: configure.in AC_INIT(configure.in) AM_INIT_AUTOMAKE(project, 0.1) 1.AC_INIT: Inicializa autoconf. 2.AM_INIT_AUTOMAKE: Genera todas las macros que automake necesita, mas los datos del proyecto. 3.aclocal: Permite generar automatica% aclocal.m4
10
Ejemplo 2: configure.in AC_INIT(configure.in) AM_INIT_AUTOMAKE(project, 0.1) AM_CONFIG_HEADER(config.h) 1.AC_INIT: Inicializa autoconf. 2.AM_INIT_AUTOMAKE: Genera todas las macros que automake necesita, mas los datos del proyecto. 3.AM_CONFIG_HEADER: Crea una plantilla con un conjunto de directivas #define. 4.aclocal: Permite generar automatica% aclocal.m4 5.autoheader: Genera el archivo config.h.in y el directorio autom4te.cache.
11
Ejemplo 3: configure.in AC_PREREQ(2.61) AC_INIT(configure.in) AM_INIT_AUTOMAKE(project, 0.1) AM_CONFIG_HEADER(config.h) AC_PROG_CC AC_OUTPUT([ Makefile src/Makefile ]) 1.AC_PREREQ: Indica que la version de autoconf debe ser igual o mayor a la requerida. 2.AC_INIT: Inicializa autoconf. 3.AM_INIT_AUTOMAKE: Genera todas las macros que automake necesita, mas los datos del proyecto. 4.AM_CONFIG_HEADER: Crea una plantilla con un conjunto de directivas #define. 5.AC_PROG_CC: Indica que es un programa en C, se requiere compilar y bibliotecas basicas. 6.AC_OUTPUT: Indica los archivos que deben ser generados. 7.aclocal: Permite generar automatica% aclocal.m4 8.autoheader: Genera el archivo config.h.in y el directorio autom4te.cache. 9.autoconf:Genera el archivo configure
12
Makefile.am SUBDIRS = po src ejemplodocdir = ${prefix}/doc/ejemplo ejemplodoc_DATA = \ README\ COPYING\ AUTHORS\ ChangeLog\ INSTALL\ NEWS\ TODO EXTRA_DIST = $(ejemplodoc_DATA) ● SUBDIRS: Indica subdirectorios que se deben procesar. ● Luego se indican archivos que son considerados como extras en EXTRA_DIST
13
src/Makefile.am INCLUDES = \ $(PACKAGE_CFLAGS) AM_CFLAGS =\ -Wall\ -g bin_PROGRAMS = ejemplo ejemplo_SOURCES = \ main.c ejemplo_LDFLAGS = ejemplo_LDADD = \ $(PACKAGE_LIBS) ● INCLUDES: Las Banderas para bibliotecas requeridas. ● AM_CFLAGS: Incluye las banderas para el compilador. ● bin_PROGRAMS: Nombre del binario. ● _SOURCES: archivos fuentes. ● _LDADDS: Bibliotecas.
14
Internacionalizacion ● Gettext: Utilidad que permite extraer cadenas desde programas. ● Intltool: Utilidad que extiende la funcionalidad de gettext, permitiendo la utilizacion de archivos desktop, glade, gconf, xml, etc.
15
Estructura del proyecto con i18n ● Agregar directorio po/ ● po/ : Almacena las cadenas traducibles. ● Contenido: – ejemplo.pot – es.po, br.po, de.po, etc : por cada idioma. – POTFILES.in : archivos que tienen cadenas traducibles. – POTFILES.skip: archivos que no tienen c. traducibles. – ChangeLog: registro de todos los cambios.
16
Macros a configure.in ● AM_PROG_LIBTOOL ● AM_GLIB_GNU_GETTEXT ● GETTEXT_PACKAGE ● AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext])
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.