summaryrefslogtreecommitdiffstats
path: root/site/cleopatra/literate-programming.org
blob: 3b56924a5163101760a385300339df490d82018e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#+BEGIN_EXPORT html
<h1>Literate Programming Projects</h1>
#+END_EXPORT

#+BEGIN_SRC makefile :tangle literate-programming.mk
literate-programming-prebuild :
	@cleopatra echo "Tangling" "literate programming project"
	@cleopatra exec -- cleopatra-run-elisp export-lp.el \
	    >> build.log 2>&1

COQFFI_ARCHIVE := site/files/coqffi-tutorial.tar.gz

coqffi-tutorial-build : literate-programming-prebuild
	@cleopatra echo "Building" "coqffi tutorial"
	@cd lp/coqffi-tutorial; dune build --display quiet
	@cleopatra echo "Archiving" "coqffi tutorial"
	@rm -f ${COQFFI_ARCHIVE}
	@tar --exclude="_build" -C lp/ -czvf ${COQFFI_ARCHIVE} coqffi-tutorial >> build.log

site/posts/CoqffiEcho.html : coqffi-tutorial-build
literate-programming-build : coqffi-tutorial-build

ARTIFACTS += lp/ ${COQFFI_ARCHIVE} site/posts/deps.svg

#+END_SRC

#+BEGIN_SRC emacs-lisp :tangle export-lp.el
(cleopatra:configure)

(org-babel-do-load-languages
 'org-babel-load-languages
 '((shell . t)))

(setq org-publish-project-alist
      '(("lp"
         :base-directory "site/posts"
         :publishing-directory "lp"
         :recursive t
         :publishing-function cleopatra:tangle-publish)))

(org-publish-all)
#+END_SRC