# Generating Source

Abstract

Generating source code

### Generating Source

The stylesheets in the 'spec-dump' package are used to generate C source and header files from the XML for the XSL 1.0 Recommendation.

The generated files are not guaranteed to be drop-in replacements for the existing xmlroff source code and header files, since many of the xmlroff source code and header files have had manual modifications.

You should use Emacs's ediff or some other diff/merge utility to compare the generated file and the existing version and only change what should be changed.

The exception are the .c and .h files created for a property that has just been added to dump-info.xml: since the property's files didn't exist before, you can just copy the generated files to the xmlroff source code.

### Files

The significant files are:

ChangeLog | Change log for the stylesheets, etc.
README | README file
conversion-lib.xsl | Stylesheet with common templates
dump-info.xml | XML file controlling output
fo-all-property-h-dump.xsl | Stylesheet for dumping fo-all-property.h
fo-context-dump.xsl | Stylesheet for dumping fo-context.[ch]
fo-object-dump.xsl | Stylesheet for dumping fo-*.c and fo-*{-private}?.h
fo-property-object-dump.xsl | Stylesheet for dumping fo-property-*.[ch]
Makefile.am | Automake file
xmlroff-property-decl-dump.xsl | Stylesheet for dumping entity declarations for property documentation files
xmlroff-property-ref-dump.xsl | Stylesheet for dumping entity references for property documentation files

Any other XSL files are evolutionary dead ends.

### Make targets

make | Makes fo-context.[ch], fo/fo-*.c, fo/fo-*{-private}?.h, and property/fo-property-*.[ch].
make all | As above.
make fo-context-dump | Makes fo-context.[ch].
make fo-object-dump | Makes fo/fo-*.c, fo/fo-*{-private}?.h.
make fo-property-object-dump | Makes property/fo-property-*.[ch].
make fo-all-property-h-dump | Makes property/fo-all-property.h.
make property-entity-decl-dump | Makes xmlroff-property-decl.ent.
make property-entity-ref-dump | Makes xmlroff-property-ref.ent.