*.savitzky.net / Tools /

[..] [files]

MakeStuff

MakeStuff contains the Makefiles and associated scripts that I use to build essentially all of my websites and projects, most notably steve.savitzky.net. They have been evolving over the course of several decades (the earliest recorded commit dates back to 1994, and the tree was converted from CVS to git in 2010, but some of the scripts date back at least a decade earlier), so they still contain a certain amount of cruft.

Annotated Contents

Directories

TeX/
LaTeX styles for formatting FilkTeX (".flk") files, plus the tools for translating them into HTML (flktran.pl) and generating index pages (index.pl). These are all showing their age, and need to be given an honorable retirement. In particular the LaTeX styles need to be updated for LaTeX 5e, and indexing needs to be done using Perl scripts derived from TrackInfo.pl.
deployment
Git hooks and related tools for efficient website deployment.
include
Files to be included in compilations or inserted into source code and documentation. Mostly contains various forms of license notice, in a format suitable for use with boilermaker.pl, and templates for use with replace-template-file.pl.
make
The general-purpose *.make files included by Makefile.
music
The *.make files and associated scripts used in music- and recording-related subdirectories and projects. Currently poorly integrated with FilkTex, and lightly documented.
scripts
Short scripts and fragments, mostly having to do with setting up and maintaining subprojects using git.

Makefile

Makefile is the heart and soul of MakeStuff. It's really just a framework: it figures out where the MakeStuff directory is by looking up the tree, and includes what it needs. It's designed so that you don't have to maintain a separate Makefile in each subdirectory, just make a symlink to the one in MakeStuff. Usually, the top-level Makefile in a project is a symlink to ./MakeStuff/Makefile and everything else links to ../Makefile.

The Makefile looks for the following local include files:

[.]site/config.make
Only in the top-level directory; this contains make rules, definitions, and dependencies that apply to the entire tree.
[.]site/targets.make
This contains rules and targets.
[.]site/depends.make
This also contains targets; if you have both, you can use this one for specific targets with dependencies.
*/[.]config.make
Only in the top-level directory; this contains make rules, definitions, and dependencies that apply to the entire tree.
*/[.]depends.make
This also contains targets; if you have both, you can use this one for specific targets with dependencies.

HEADER.html

Unlike most other directories on this website, where the HEADER.html file is hidden from casual browsing by an index.html file, this directory deliberately leaves HEADER.html out where you can see it. Whenever I have control over a programming project, I make its directory tree look like a website -- you will almost always find a HEADER.html file like this one, in every subdirectory. The Apache web server puts a HEADER.html file, if you have one, at the top of a directory listing. (It puts README.html at the bottom, after the file list.) With a little tweaking you can get similar behavior with plain-text HEADER and README, but you can't always count on having enough control over a hosted website's configuration.

This particular directory contains tools for working on website- and music-related projects: the tools used on this website and the projects you find here. (Source code for other, unrelated open-source projects can be found in ../Src/.)

Other Files

MIT-LICENSE.txt
What it says on the tin -- the license for this project and its contents.
to.do
The to-do list for this directory. You can probably find some in other directories if you look. The format is trivial: an open circle (lowercase "o") is something that's not finished yet; a filled circle (asterisk) is finished. "~" indicates something I've decided not to do, and "?" indicates something I'm dithering about. Eventually finished items move to a "done" section or, when they start getting moldy, a separate file.


      Name                    Last modified      Size  Description
Parent Directory - deployment/ 09-Dec-2014 07:04 - 2015/ 27-Dec-2015 10:27 - list-tracks 14-Aug-2016 22:15 1.7K track-depends.make 14-Aug-2016 22:15 722 Archive/ 17-Aug-2016 21:55 - MIT-LICENSE.txt 17-Aug-2016 21:55 1.1K README.md 27-Aug-2016 19:44 4.6K include/ 27-Aug-2016 19:44 - replace-template-fil..> 27-Aug-2016 19:44 3.8K TrackInfo.pl 27-Aug-2016 19:44 31K make/ 14-Oct-2016 06:13 - Makefile 26-Nov-2016 10:26 2.8K test/ 26-Nov-2016 10:26 - music/ 26-Nov-2016 21:31 - TeX/ 27-Nov-2016 11:44 - scripts/ 07-Dec-2016 06:22 - to.do 20-Dec-2016 20:16 11K
README for /Steve.Savitzky.net/MakeStuff
(As mentioned above, if you have a README or README.html file in a directory, Apache will put it below the index. Very handy.)
NOTE:
MakeStuff is licensed under the MIT license -- see MIT-LICENSE.txt in this directory.