aboutsummaryrefslogtreecommitdiffhomepage
path: root/maker.org
blob: 771160559433c27ec0c523d03218bb03bfecf681 (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
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