Reference Tutorial Developer 1 Compile 2 Design 3 Implement 4 Modify 5 Misc 6 Licence SEARCH

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
    generate.lis
    hi01.lis ... hi10.lis
    hi01.out ... hi05.out
    hi06a.out
    hi06b.out
    hi07a.out
    hi07b.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:
       ex09a.fwi
       sc13a.fwi ... sc13f.fwi
       sc15a.fwi
       tg08a.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.

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