1 Compile
2 Design
3 Implement
4 Modify
5 Misc
6 Licence

FunnelWeb Developer Manual

1.3 Establish The Source Tree

At this stage, we will assume that you have somehow obtained a set of files that are supposed to be FunnelWeb, and that they are sitting on a disk on the machine on which you wish to compile FunnelWeb.

The next thing you have to do is to make sure that the FunnelWeb directory tree has been correctly unpacked. The directory tree should look like this.

   fwdir       - Root FunnelWeb directory.
      admin    - Administrative files.
      answers  - Answers to test suite.
      results  - For test results.
      scripts  - Test scripts.
      sources  - Source code.
      tests    - Test suite.
      web      - The FunnelWeb web.

The following sections describe the contents of each directory in alphabetical order. Check the contents to make sure that you have everything. Do not become fussed if your configuration is not quite as specified, as it is very easy for installation guides such as this one to go out of date.

Admin Directory

The admin directory contains administrative files to do with licensing and such. It is also a catch-all directory for files that don't belong anywhere else. At the time of writing, it is not clear exactly what will be in the admin directory. Why not take a look?

Answers Directory

The answers directory contains the "correct answers" to all the regression testing input files. The regression test scripts compare these files to the files generated in the results directory.

an01.lis ... an04.lis
ex01.lis ... ex16.lis
ex01.out ... ex10.out
ex11.tex ... ex16.tex
hi01.lis ... hi10.lis
hi01.out ... hi05.out
hi08.out ... hi10.out
pr01.lis ... pr10.lis
sc01.lis ... sc29.lis
tg01.lis ... tg09.lis
tg01.out ... tg09.out
wv01.lis ... wv06.lis
wv01.tex ... wv06.tex

Results Directory

The results directory exists as a target directory for the output files generated by FunnelWeb during regression testing. This directory is distributed empty and should be empty at the start of regression testing. However, it is permissible for the results directory to contain files generated during a previous test run, as the regression testing scripts delete specific unwanted files before each test anyway.

Scripts Directory

The scripts directory stores the FunnelWeb command shell scripts that are used to perform regression testing.

master.fws    - The master test script.
test_gen.fws  - Script to generate tricky input files.
test_l.fws    - Test FunnelWeb with +L.
test_ld.fws   - Test FunnelWeb with +L +B...
test_lo.fws   - Test FunnelWeb with +L +O.
test_lo2.fws  - Test FunnelWeb with +L +O (2 outfiles).
test_lot.fws  - Test FunnelWeb with +L +O +T.
test_lt.fws   - Test FunnelWeb with +L +T.

Sources Directory

The sources directory contains all  of the C source files required to build a FunnelWeb binary executable. In the following list, files given without an extension represent both .c and .h files.

analyse       - The analyser.
as            - Assertions.
clock         - A clock abstraction.
command       - The shell command interpreter.
data          - Shared data structures and global vars.
dump          - Dump internal data structures.
environ.h     - Machine-dependent, program-ind header.
help          - Module to write out help messages.
help_gnu      - Function to write out the GNU license.
help_gnu.txt  - The GNU license in text form.
help_gnu.ctx  - The GNU license in C code form.
list          - A list abstraction.
lister        - Module to manage the listing file.
machin        - Module to hold machine-dependent,
                program-dependent stuff.
main.c        - The main() program.
mapper        - Module to read files into memory.
memory        - Memory management.
misc          - Miscellaneous functions.
option        - Command line option processing.
parser        - The parser.
scanner       - The scanner.
section       - A section number abstraction.
style.h       - A machine-independent,
                program-independent header file.
table         - A table abstraction.
tangle        - The tangler.
texhead       - Module to write out TeX header
                in documentation files.
texhead.ctx   - The TeX header in C code form.
texhead.tex   - The TeX header in TeX form.
weave         - The weaver.
writfile      - Output abstraction.

The ".txt", and ".tex" files do not participate in the compilation, but are considered part of the source code as they were used to generate the ".ctx" files. The ".ctx" files are included by .c files of the same name. They do not need to be compiled themselves.

Tests Directory

The tests directory stores all the input files of the regression test suite. These come in two kinds: FunnelWeb input files with extensions of ".fw", and FunnelWeb include files with extensions of ".fwi".

FunnelWeb Input Files:
   an01.fw ... an04.fw  - Analyser tests.
   ex01.fw ... ex16.fw  - Examples from the tut man.
   generate.fw          - Generates tricky input files.
   hi01.fw ... hi10.fw  - Examples from hints.
   pr01.fw ... pr10.fw  - Parser tests.
   sc01_note.fw         - Explains absence of sc01.fw
   sc02.fw ... sc29.fw  - Scanner tests.
   tg01.fw ... tg09.fw  - Tangler tests.
   wv01.fw ... wv06.fw  - Weaver tests.

FunnelWeb Include Files:
   sc13a.fwi ... sc13f.fwi

Web Directory

This directory is for the FunnelWeb webs if you want to keep a copy on your local disk so you can surf it quickly.

Prev Up Next

Webmaster    Copyright © Ross N. Williams 1992,1999. All rights reserved.