# The Project File

## Contents

The project-file, `hsc` stores some information about the document it just processed. This includes

- name of the document (html-object) created
- name of the main hsc-source used
- names of all files include (both via user arguments or `<$include>`)
- local IDs defined in this document (using `<A NAME="id">` or `<tag ID="id">`)

This enables `hsc` to check references to local IDs in other documents of your project. Additionally, you can now use `hscdepp` to maintain the dependencies between hsc-source and HTML object, and update a Makefile according to them.

Another tool called `hscpitt` allows you to examine, add and remove documents from the project-file.

## Naming The Project-File

It doesn't matter which name you give the project-file, but I suggest to call it hsc.project; this is the default name both `hscpitt` and `hscdepp` assume, and you do not have to specify another command line option when invoking them.

But it's very important to use the same name for the project-file every time you invoke `hsc`. Otherwise, `hsc` and `hscdepp` won't be able to find all required information and will launch warnings or create incomplete dependencies.

## Using The Project-File

To create an empty project-file, you have to `hscpitt` with the command `NEW`. To make `hsc` maintain it, you have to specify the commandline option `PRJFILE` when invoking it.

If you want to utilize the information stored in the project-file outside `hsc`, you can use `hscpitt` with the command `extract` and for instance parse it with a short program written in some scripting language. See `hscpaltrow` for an example.