"src/README"

Welcome to the root of the source tree for HACKT.  
Whether you're a developer or user, this will be the home base for 
most of the work.  You will run most build-related commands from here.  

You'll note that this directory contains many subdirectories, 
HOWEVER, 99% of the Makefile work belongs to this directory.  
For efficiency reasons, we will use a flat Makefile to do our building.  

The Makefile(.am)

targets of interest include:

all (the default)
	just builds all executables and their dependencies

check-headers:
For this project, I, fangism, am enforcing the Standalone-Header-Policy, 
which states that "Every header file should be compilable on its own, 
without having to depend on inclusion of another header file."
(Note: `all' depends on this target.)

Exceptions.  Of course, the simple workaround for exceptions
is to add a custom bogus rule for a particular header check
to override the suffix-rule user to generate it.  

###############################################################################
The executables:

all commands are run form the HACKT dispatcher, named hackt.  

hackt

will give you a summary of the available subcommands.
Complete commands are of the form:

hackt [options] command [options] [arguments]

###############################################################################
Sample tool chain:

Suppose you have a source file "foo.in".  
(hackt is currently file-extension-agnostic.)

One might run:

hackt compile foo.in foo.artobj

to produce a compiled object file, assuming the input is accepted.  
To create the top-level port connections, one would then invoke:

hackt unroll foo.artobj foo.artobjunroll

to produce an unrolled object file, foo.artobjunroll.
To view the contents of any object file in semi-human-readable form:

hackt objdump foo.artobjunroll

###############################################################################

Fang, write more README!!!

