Makefile

Inside the starter-project-drawer, you can find an rather empty Makefile to be used for new projects. This will be a short explanation of the symbols and rules defined in this Makefile.

Symbols

DESTDIR   =
HSCMESSAGE=MsgMode=normal Ignore=46
HSCPROJECT=hsc.project
HSCINCLUDE=include/standard.hsc include/page.hsc
HSCMISC   =RplcEnt

DESTDIR describes the destination-directory for your html-objects and is relative to the path where you invoke make (and usually your hsc-sources are located, too). IGNORE specifies which messages should be ignored, HSCPROJECT is the project-file to be used both by hsc and hscdepp. HSCINCLUDE specifies include files which should be processed within the command-call invoking hsc from the Makefile; these files will be included for all hsc-sources. HSCMISC contains all other options and switches that should be passed to hsc.

HSC     =hsc
HSCFLAGS=$(HSCMISC) $(HSCMESSAGE) prjfile=$(HSCPROJECT) to=$(DESTDIR) $(HSCINCLUDE)

HSC is the command to be used to invoke hsc; if it isn't already in your search-path, you can also enter the full path here. HSCFLAGS is computed from the values above and contains all parameters for hsc, exept the main hsc-source.

HSCDEPP =hscdepp

This is the command to be used to invoke hscdepp.

Rules

$(DESTDIR)%.html : %.hsc
        $(HSC) $(HSCFLAGS) $<

This is a pattern rule that will create an HTML object in DESTDIR using the corresponding hsc-source and the options you specified above. The automatic variable "$<" contains the name of the first dependency, normally this is the main hsc-source.

depend :
        $(HSCDEPP) file=Makefile prjfile=$(HSCPROJECT) verbose

This rule will invoke hscdepp and update your dependencies; this will modify your Makefile.

Pre- And Post Processing

A fine thing about the pattern rule used above to create your html-object is that it can be extended to do several things before or after hsc performes its task.

For example, extending it to

$(DESTDIR)%.html : %.hsc
        $(HSC) $(HSCFLAGS) $<
        chmod 644 $@

will make sure that the file-permission-bits are set to the usual value required by w3-documents. This, of course, works only for Unixoid systems.

If you are using AmigaOS and have an ARexx capable w3 browser installed, you can use

$(DESTDIR)%.html : %.hsc
        $(HSC) $(HSCFLAGS) $<
        openurl FILE $@

to immediately display updated documents in your browser. OpenURL is available from Aminet.

You can also use a better syntax checker than hsc on your newly created document:

$(DESTDIR)%.html : %.hsc
        $(HSC) $(HSCFLAGS) $<
        checkhtml $@

Note that errors found during the second check are reported from the HTML object and might be a bit difficult to backtrace in the hsc source.