Lib:Sources

From GNUpdf

Example sunflower image
Note: Please update this page each time you insert, delete or rename a file in the CVS TRUNK. To maintain this page in a up-to-date state is important for newcomers that want to understand the sources.


Contents

Overview

This page contains a description of the files in the libgnupdf source distribution.

Root directory

The root directory of the distribution contain the following files.

files description
  • AUTHORS

This file contain the names of the people that has contributed to the development of the library writing code or documentation. It is a detailed list, since we want to maintain precise information due to copyright issues.

  • COPYING

A copy of the GNU General Public License version 3. This is the license governing the distribution of the library.

  • ChangeLog

A detailed record of the changes made to the library.

  • INSTALL

Generic installation instructions from autoconf.

  • NEWS

News of each release.

  • README

Brief description of the project and links to the homepage and ftp.

  • README.cvs

Additional information to build a CVS checkout of the library.

  • bootstrap

Bootstrap script (alternative to autoreconf) used to regenerate the libtool and autoconf files. Wrote by Karl Berry.

  • configure.ac

Autoconf file for the library. It is used by autoconf to generate the configure script.

  • Makefile.am

Top-level automake configuration file.

  • other files...

Several generated files.

doc/ Reference Manual and Manpages

This directory contain the texinfo source files of the GNU PDF Reference Manual (it is only a stub by now).

We may also want to generate manpages for the API documented in the texinfo manual. We dont want to manually maintain the manpages, so we would need a script to extract the contents of the texinfo file.

Automatically generated manpages for the library utilities will be generated (using the help2man command) here.

files description
Makefile.am Automake input file.
fdl.texi A copy of the GNU Free Documentation License (included in the manual).
gnupdf-manual-wiki.init texi2html initialization file for wiki pages generation.
gnupdf-manual.init texi2html initialization file for html generation.
manuals.css Cascade Style Sheet for the html manuals.
texinfo.tex Implementation of texinfo over TeX.
gnupdf.texi Texinfo source code of the Reference Manual.
gnupdf-utils.texi Texinfo source code of the Utils Manual.
pdf_filter.1 Manual page (generated using help2man) for the pdf_filter utility.

lib/ gnulib Imported Code

gnulib is the GNU Portability Library. It provides stubs and portable implementations of facilities known to have portability issues such as strings, getopt, math functions, etc. It also provides portable implementations of useful facilities such as linked lists and trees.

All the files in this directory are imported from gnulib using the gnulib-tool command (see the gnulib manual for more information on using gnulib-tool). The maintainer regularly updates the imported files from latest versions of gnulib.

The gnulib modules used in the GNU PDF library are:

  • array-list
  • getopt
  • list
  • math
  • xalloc
  • malloc
  • getline

m4/ M4 macros

This directory contain the definition of M4 macros implementing tests used by autoconf. Note that some of the files are imported from GNUlib.

files description
  • absolute-header.m4
  • error.m4
  • exitfail.m4
  • getopt.m4
  • gl_list.m4
  • gnulib-cache.m4
  • gnulib-common.m4
  • gnulib-comp.m4
  • gnulib-tool.m4
  • include_next.m4
  • inline.m4
  • math_h.m4
  • onceonly_2_57.m4
  • size_max.m4
  • stdbool.m4
  • stdlib_h.m4
  • unistd_h.m4
  • xalloc.m4
  • xsize.m4
  • malloc.m4
  • extensions.m4
  • getdelim.m4
  • getline.m4
  • realloc.m4
  • stdio_h.m4

Imported from gnulib.

  • zlib.m4

Defines the CHECK_ZLIB macro used in configure.ac. Written by Loic Dachary.

src/ Library Source Code

This directory contain a subdirectory containing the source files for each library layer, plus some global source files and scripts.

files description
Makefile.am Automake source file
extract-public-hdr.in

Script used to generate the public header file to be included by client applications.

  • pdf-global.h

Main definitions for the library.

  • pdf-global.c
  • Definition of global variables.
  • Library initialization and finalization routines.


src/base Base Layer Source Code

This directory contains the source files for the Base Layer of the library.

files description
  • pdf-base.h, pdf-base.c

Layer-wide main code.

  • pdf-stm.h, pdf-stm.c

Stream library module.

  • pdf-stm-f-a85.h, pdf-stm-f-a85.c
  • pdf-stm-f-ahex.h, pdf-stm-f-ahex.c
  • pdf-stm-f-fax.h, pdf-stm-f-fax.c
  • pdf-stm-f-flate.h, pdf-stm-f-flate.c
  • pdf-stm-f-lzw.h, pdf-stm-f-lzw.c
  • pdf-stm-f-null.h, pdf-stm-f-null.c
  • pdf-stm-f-pred.h, pdf-stm-f-pred.c
  • pdf-stm-f-rl.h, pdf-stm-f-rl.c

Implementation of the PDF standard filters.

  • pdf-stm-file.h, pdf-stm-file.c
  • pdf-stm-mem.h, pdf-stm-mem.c

Stream backends.

  • pdf-fp.h, pdf-fp.c

Floating Point Arithmetic Module.

  • pdf-types.h, pdf-types.c

Basic Types Module.


src/object Object Layer Source Code

This directory contain the source files pertaining to the Object Layer of the library.

files description
  • pdf-obj.h, pdf-obj.c

Implementation of PDF Objects.


src/document Document Layer Source Code

This directory contains the source files pertanining to the Document Layer of the library.

files description
  • pdf-date.h, pdf-date.c

Implementation of the date common data type.

  • pdf-function.h, pdf-function.c

Implementation of the function common data type.

  • pdf-rectangle.h, pdf-rectangle.c

Implementation of the rectangle common data type.

torture/ Test Suites (torture chamber)

This directory contain the unit tests of the library.

files description
Makefile.am Automake source file
generate-testall Script that generates the test driver testall.c
test-stm-module.c Unit tests of the stm library module.

utils/ Utilities

This directory contain several utilities to manipulate PDF documents. These utilities makes use of the GNU PDF Library.

files description
  • pdf-filter.h, pdf-filter.c

pdf-filter: a front-end for the standard PDF filters.

prmgt/ Project Management

This directory contain several files with management information about the project: tasks, reports, etc.

files description
  • libgnupdf.tjp

taskjuggler file for libgnupdf.

  • pertdot.xsl, pertfdp.xsl

xsl templates to get Pert diagrams for libgnupdf.tjp.

  • pmccabe2html.in

AWK program to generate a html report from the output of the pmccabe program.

  • pmccabe.css

CSS stylesheets.