aboutsummaryrefslogtreecommitdiff
path: root/www/Makefile
diff options
context:
space:
mode:
authorMichael Reed <michael@michaelreed.io>2017-07-13 20:45:13 -0400
committerMichael Reed <michael@michaelreed.io>2017-07-15 12:05:36 -0400
commit672212f42bd4344049089e255762c33e96637a0a (patch)
tree88568dc98c37209e35edc96bc6011f4926abe274 /www/Makefile
parentad782e9a2351b39d5b57eaceceb01a0f6b79165b (diff)
downloadlibrebootfr-672212f42bd4344049089e255762c33e96637a0a.tar.gz
librebootfr-672212f42bd4344049089e255762c33e96637a0a.zip
Speed up website build
It turns out that we only need bare HTML files for .md files in news, yet publish.sh creates them unconditionally. That is, we spend a lot of time building bare HTML files that we never use. This commit makes it so that bare HTML files are only generated for news files, which speeds up the website build significantly: $ /home/michael/benchmark.sh speed-up-build master Already on 'speed-up-build' NOW TESTING ON speed-up-build 0m08.24s real 0m08.53s user 0m05.57s system 0m08.21s real 0m08.39s user 0m05.58s system 0m08.26s real 0m08.23s user 0m05.70s system 0m08.26s real 0m08.27s user 0m05.91s system 0m08.24s real 0m08.36s user 0m05.63s system 0m08.28s real 0m08.40s user 0m05.67s system 0m08.29s real 0m08.21s user 0m05.83s system 0m08.23s real 0m08.12s user 0m05.80s system 0m08.32s real 0m08.32s user 0m05.75s system 0m08.30s real 0m08.40s user 0m05.61s system Switched to branch 'master' Your branch is ahead of 'origin/master' by 33 commits. NOW TESTING ON master 0m12.98s real 0m15.07s user 0m07.18s system 0m12.93s real 0m14.57s user 0m07.69s system 0m12.98s real 0m15.06s user 0m07.46s system 0m12.98s real 0m14.75s user 0m07.67s system 0m12.94s real 0m15.10s user 0m07.22s system 0m12.94s real 0m14.95s user 0m07.22s system 0m12.98s real 0m14.57s user 0m08.02s system 0m12.96s real 0m14.84s user 0m07.41s system 0m12.96s real 0m14.99s user 0m07.49s system 0m13.06s real 0m14.91s user 0m07.54s system And here's the script in question, benchmark.sh: #!/bin/sh set -u set -e # usage: runit branch runit() { git checkout "$1" echo echo NOW TESTING ON "$1" echo for i in `jot 10`; do make clean >/dev/null; time make -j2 >/dev/null; done } make clean >/dev/null for branch in "$@" do runit "$branch" done
Diffstat (limited to 'www/Makefile')
-rw-r--r--www/Makefile20
1 files changed, 11 insertions, 9 deletions
diff --git a/www/Makefile b/www/Makefile
index d9405f6e..10eb66fc 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -18,25 +18,27 @@ HTML_MAIN = $(MD_MAIN:.md=.html)
MD_NEWS != cat news/MANIFEST
HTML_NEWS = $(MD_NEWS:.md=.html)
+HTML_BARE_NEWS = $(MD_NEWS:.md=.bare.html)
-# news/index.html implies the building of $(HTML_NEWS).
-all: $(HTML_MAIN) news/index.html
+# news/index.html implies the building of $(HTML_BARE_NEWS).
+all: $(HTML_MAIN) $(HTML_NEWS) news/index.html
-.SUFFIXES: .md .html
+.SUFFIXES: .md .html .bare.html
.md.html:
./publish.sh $<
+.md.bare.html:
+ pandoc $(<) > $(<:.md=.bare.html)
+
# Unlike all the other markdown files, news/index.md does not exist at first:
-# it must be generated by index.sh. Also note that index.sh depends on the
-# existence of the HTML version of all news items, hence the dependency line
-# below.
-news/index.md: $(HTML_NEWS)
+# it must be generated by index.sh. Also note that index.sh generates the RSS
+# feed, which requires the bare HTML versions of all news items.
+news/index.md: $(HTML_BARE_NEWS)
./index.sh
clean:
- rm -f $(HTML_MAIN) $(HTML_MAIN:.html=.bare.html) \
- $(HTML_NEWS) $(HTML_NEWS:.html=.bare.html) \
+ rm -f $(HTML_MAIN) $(HTML_NEWS) $(HTML_BARE_NEWS) \
news/index.md news/index.html news/index.bare.html \
feed.xml news/feed.xml