From 4b0c115b58211dcc063bcd09f8fe122e558b92ce Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 20 Oct 2015 18:52:12 -0400 Subject: literate programming introduced, tangle not yet run --- maker.org | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 maker.org (limited to 'maker.org') diff --git a/maker.org b/maker.org new file mode 100644 index 0000000..7711605 --- /dev/null +++ b/maker.org @@ -0,0 +1,159 @@ +#+TITLE: Emacs config file written in org-mode +#+AUTHOR: Ralph Amissah +#+EMAIL: ralph.amissah@gmail.com +#+STARTUP: indent +#+LANGUAGE: en +#+OPTIONS: H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil -:t f:t *:t <:t +#+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc +#+OPTIONS: author:nil email:nil creator:nil timestamp:nil +#+OPTIONS: ^:nil _:nil#+OPTIONS: ^:nil _:nil +#+EXPORT_SELECT_TAGS: export +#+EXPORT_EXCLUDE_TAGS: noexport +#+TAGS: Amissah(A) Class(c) WEB(W) noexport(n) + +* makefile :makefile: +#+BEGIN_SRC makefile :tangle makefile +#DMD=dmd +DMD=dmd +DMD_FLAGS=-de -w +DMD_FLAGS_DEBUG=-unittest -debug=checkdoc -debug=summary +DMD_FLAGS_RELEASE=-release +DMD_FLAG_BINOF=-of +#LDC=ldc2 +LDC=ldc2 +LDC_FLAGS=-w +LDC_FLAGS_DEBUG=-unittest -d-debug=checkdoc -d-debug=summary +LDC_FLAGS_RELEASE=-release +LDC_FLAG_BINOF=-of= +#GDC=gdc +GDC=gdc +#GDC=gdc-5 +GDC_FLAGS= +GDC_FLAGS_DEBUG=-fdebug=checkdoc -fdebug=summary +GDC_FLAGS_RELEASE=-frelease +GDC_FLAG_BINOF=-o +## D_COMPILER=DMD +## D_COMPILER=LDC +## D_COMPILER=GDC +D_COMPILER=LDC +DC=$($(D_COMPILER)) +DC_FLAGS=$($(shell echo $(D_COMPILER)_FLAGS)) +DC_FLAGS_DEBUG=$($(shell echo $(D_COMPILER)_FLAGS_DEBUG)) +DC_FLAGS_RELEASE=$($(shell echo $(D_COMPILER)_FLAGS_RELEASE)) +DC_FLAG_BINOF=$($(shell echo $(D_COMPILER)_FLAG_BINOF)) +PRG_NAME=sdp +PRG_SRC=$(PRG_NAME).d +PRG_SRCDIR=./lib/$(PRG_NAME) +PRG_BIN=$(PRG_NAME) +PRG_BINDIR=bin +# ORG +EMACSLISP=/usr/share/emacs/site-lisp +EMACSLISP_ORG=~/.emacs.d/elpa/org-20151005 +EMACSLISP_ORG_CONTRIB=~/.emacs.d/elpa/org-plus-contrib-20151005 +ORGFILELIST=$(shell echo `ls -1 maker.org org/*.org`) +ORGFILES="" +ORGDIR=$(shell echo `pwd`) + +all: build + +build: $(PRG_SRCDIR)/$(PRG_SRC) + $(DC) $(DC_FLAGS) \ + $(DC_FLAG_BINOF)$(PRG_BINDIR)/$(PRG_BIN) \ + $(PRG_SRCDIR)/$(PRG_SRC) + +rebuild: $(PRG_SRCDIR)/$(PRG_SRC) $(PRG_BINDIR)/$(PRG_BIN).o clean build + +debug: $(PRG_SRCDIR)/$(PRG_SRC) + $(DC) $(DC_FLAGS) $(DC_FLAGS_DEBUG) \ + $(DC_FLAG_BINOF)$(PRG_BINDIR)/$(PRG_BIN) \ + $(PRG_SRCDIR)/$(PRG_SRC) + +debug_dmd: $(PRG_SRCDIR)/$(PRG_SRC) + $(DMD) $(DMD_FLAGS) $(DMD_FLAGS_DEBUG) \ + $(DMD_FLAG_BINOF)$(PRG_BINDIR)/$(PRG_BIN) \ + $(PRG_SRCDIR)/$(PRG_SRC) + +debug_ldc: $(PRG_SRCDIR)/$(PRG_SRC) + $(LDC) $(LDC_FLAGS) $(LDC_FLAGS_DEBUG) \ + $(LDC_FLAG_BINOF)$(PRG_BINDIR)/$(PRG_BIN) \ + $(PRG_SRCDIR)/$(PRG_SRC) + +debug_gdc: $(PRG_SRCDIR)/$(PRG_SRC) + $(GDC) $(GDC_FLAGS) $(GDC_FLAGS_DEBUG) \ + $(GDC_FLAG_BINOF)$(PRG_BINDIR)/$(PRG_BIN) \ + $(PRG_SRCDIR)/$(PRG_SRC) + +release: distclean_and_init tangle $(PRG_SRCDIR)/$(PRG_SRC) + $(DC) $(DC_FLAGS) $(DC_FLAGS_RELEASE) \ + $(DC_FLAG_BINOF)$(PRG_BINDIR)/$(PRG_BIN) \ + $(PRG_SRCDIR)/$(PRG_SRC) + +init: + mkdir -p $(PRG_SRCDIR); \ + mkdir -p $(PRG_BINDIR); + +clean: $(PRG_BINDIR)/$(PRG_BIN).o + rm $(PRG_BINDIR)/$(PRG_NAME).o + +expunge: init $(PRG_BINDIR) + rm -rf $(PRG_BINDIR); \ + rm -rf $(PRG_SRCDIR); + +distclean: init $(PRG_BINDIR) expunge + +distclean_and_init: init $(PRG_BINDIR) expunge + mkdir -p $(PRG_SRCDIR); \ + mkdir -p $(PRG_BINDIR); + +tangle: + for f in $(ORGFILELIST); do \ + ORGFILES="$$ORGFILES \"$$f\""; \ + done; \ + emacs --batch -Q -q \ + --eval "(progn \ + (add-to-list 'load-path \ + (expand-file-name \"$(EMACSLISP)\")) \ + (add-to-list 'load-path \ + (expand-file-name \"$(EMACSLISP_ORG)\" t)) \ + (add-to-list 'load-path \ + (expand-file-name \"$(EMACSLISP_ORG_CONTRIB)\" t)) \ + (require 'org)(require 'ob)(require 'ob-tangle) \ + (mapc (lambda (file) \ + (find-file (expand-file-name file \"$(ORGDIR)\")) \ + (setq-local org-src-preserve-indentation t) \ + (org-babel-tangle) \ + (kill-buffer)) '($$ORGFILES)))" 2>&1 + +gitsnapshot: distclean_and_init tangle + git commit -a + +.PHONY : all build rebuild debug release \ + clean distclean init \ + tangle +#+end_src +* emacs org babel tangle :tangle: + [http://orgmode.org/manual/Batch-execution.html] +#+BEGIN_SRC sh :tangle tangle :tangle-mode (identity #o755) :shebang #!/bin/sh +# -*- mode: shell-script -*- +# tangle files with org-mode +DIR=`pwd` +ORGFILES="" +EMACSLISP=/usr/share/emacs/site-lisp +EMACSLISP_ORG=~/.emacs.d/elpa/org-20151005 +EMACSLISP_ORG_CONTRIB=~/.emacs.d/elpa/org-plus-contrib-20151005 +# wrap each argument in the code required to call tangle on it +for i in $@; do + ORGFILES="$ORGFILES \"$i\"" +done +emacs --batch -Q -q \ +--eval "(progn +(add-to-list 'load-path (expand-file-name \"$EMACSLISP\")) +(add-to-list 'load-path (expand-file-name \"$EMACSLISP_ORG\" t)) +(add-to-list 'load-path (expand-file-name \"$EMACSLISP_ORG_CONTRIB\" t)) +(require 'org)(require 'ob)(require 'ob-tangle) +(mapc (lambda (file) + (find-file (expand-file-name file \"$DIR\")) + (setq-local org-src-preserve-indentation t) + (org-babel-tangle) + (kill-buffer)) '($ORGFILES)))" 2>&1 #|grep tangled +#+end_src -- cgit v1.2.3