aboutsummaryrefslogtreecommitdiff
path: root/www/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* www/index.sh: Fix OpenBSD touch(1) incompatibility, take #2Michael Reed2017-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | | When running index.sh on OpenBSD, the following error happens for each item in the news/ directory (output is from "bash -x"): + touch -d '4 Jun 2017' news/andrew-robbins-new-maintainer.md touch: out of range or illegal time specification: YYYY-MM-DDThh:mm:ss[.frac][Z] This is because OpenBSD's touch(1) requires that the "d" flag's argument be in ISO 8601 format, that is, "YYYY-MM-DDThh:mm:ss[.frac][Z]". This could have been dealt with by converting the article date (determined by "sed -n 3p $f | sed -e 's/^..//g'") to ISO 8601 format, then passing the date to touch(1). That would have required even more code, so was discarded as a possible solution. Instead, we solve this by keeping a MANIFEST file under news/, which is read to determine (a) which articles should be added to news/index.md, and (b) in which order. This avoids the need for touch(1) altogether, finally making the whole libreboot website build properly on OpenBSD. This also allows a minor simplification in the Makefile.
* Build website incrementally (and faster if you have the CPU cores)Michael Reed2017-07-091-0/+44
This is done by replacing www/generate.sh with a Makefile. Benefits: - Makes builds incremental, meaning that only the minimum number of markdown files will be converted to HTML during a build. The previous scheme always generated a new HTML file for every markdown file, which is a big waste of time if only 1 or 2 markdown files have been changed. - Allows for much faster builds through concurrent jobs (e.g., via "make -j4"). On my 4-core machine, my average build time for the website with generate.sh was just over 26 seconds; with "make -j4", it was 13 seconds. - Avoids portability issues with find(1) in generate.sh, which I was encountering on OpenBSD. A note on portability: unlike GNU Make, OpenBSD's Make does not have the "$(shell [commands])" construct, so we don't use that. Instead we use "!= [commands]", which is supported by both.