aboutsummaryrefslogtreecommitdiffhomepage
path: root/maker.org
diff options
context:
space:
mode:
Diffstat (limited to 'maker.org')
-rw-r--r--maker.org98
1 files changed, 38 insertions, 60 deletions
diff --git a/maker.org b/maker.org
index a46006a..e306483 100644
--- a/maker.org
+++ b/maker.org
@@ -16,57 +16,51 @@
** settings [+2] :settings:
*** alternative D compilers [+1] :compiler:
**** dmd :dmd:
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+BEGIN_SRC makefile :padline no :tangle makefile
DMD=dmd
DMD_FLAGS=-de -w
DMD_FLAGS_RELEASE=-release
DMD_FLAG_BINOF=-of
+#+END_SRC
-#+end_src
**** ldc2 :ldc:
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+BEGIN_SRC makefile :tangle makefile
LDC=ldc2
LDC_FLAGS=-w
LDC_FLAGS_RELEASE=-release
LDC_FLAG_BINOF=-of=
+#+END_SRC
-#+end_src
**** gdc :gdc:
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+BEGIN_SRC makefile :tangle makefile
GDC=gdc
#GDC=gdc-5
GDC_FLAGS=
GDC_FLAGS_RELEASE=-frelease
GDC_FLAG_BINOF=-o
+#+END_SRC
-#+end_src
*** set/select: ~D compiler~ & ~debug flags~ [+1] [2/2] :select:
- [X] Set D_COMPILER (one of DMD LDC or GDC)
- [X] Set debug flags (using DMD standard flag -debug=)
**** SET compiler: "SET_D_COMPILER=": :compiler:select:
Set D_COMPILER one of DMD LDC or GDC e.g.:
SET_D_COMPILER=DMD
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+BEGIN_SRC makefile :tangle makefile
# set D_COMPILER one of DMD LDC or GDC:
SET_D_COMPILER=LDC
+#+END_SRC
-#+end_src
**** SET debug flags: "SET_DC_FLAGS_DEBUG_EXTRA=-debug=": :compiler:flags:debug:
Set debug flags using DMD standard flag -debug= e.g.:
SET_DC_FLAGS_DEBUG_EXTRA=-debug=headings -debug=bookindex
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+BEGIN_SRC makefile :tangle makefile
SET_DC_FLAGS_DEBUG_EXTRA=-debug=headings -debug=bookindex
+#+END_SRC
-#+end_src
*** D compiler settings [+1] :settings:compiler:
**** compiler settings
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+BEGIN_SRC makefile :tangle makefile
DC=$($(SET_D_COMPILER))
DC_FLAGS=$($(shell echo $(SET_D_COMPILER)_FLAGS))
DC_FLAGS_RELEASE=$($(shell echo $(SET_D_COMPILER)_FLAGS_RELEASE))
@@ -74,11 +68,10 @@ DC_FLAG_BINOF=$($(shell echo $(SET_D_COMPILER)_FLAG_BINOF))
DC_FLAGS_DEBUG_DEFAULT_SET=-unittest -debug=checkdoc -debug=summary
DC_FLAGS_DEBUG_SET=\
$(shell echo $(DC_FLAGS_DEBUG_DEFAULT_SET) $(SET_DC_FLAGS_DEBUG_EXTRA))
+#+END_SRC
-#+end_src
**** compiler conditional settings (depending on selected D compiler)
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+BEGIN_SRC makefile :tangle makefile
ifeq ($(DC), $(DMD))
DC_FLAGS_DEBUG :=$(shell echo $(DC_FLAGS_DEBUG_SET))
endif
@@ -88,21 +81,19 @@ endif
ifeq ($(DC), $(GDC))
DC_FLAGS_DEBUG :=$(shell echo $(DC_FLAGS_DEBUG_SET)| sed -e "s/-debug/-fdebug/g")
endif
+#+END_SRC
-#+end_src
*** Project Details :project:sdp:
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+BEGIN_SRC makefile :tangle makefile
PRG_NAME=sdp
PRG_SRC=$(PRG_NAME).d
PRG_SRCDIR=./lib
PRG_BIN=$(PRG_NAME)
PRG_BINDIR=bin
+#+END_SRC
-#+end_src
*** Emacs Org settings :settings:emacs:org:
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+BEGIN_SRC makefile :tangle makefile
# ORG
EMACSLISP=/usr/share/emacs/site-lisp
EMACSLISP_ORG=~/.emacs.d/elpa/org-20151005
@@ -110,8 +101,8 @@ EMACSLISP_ORG_CONTRIB=~/.emacs.d/elpa/org-plus-contrib-20151005
ORGFILELIST=$(shell echo `ls -1 maker.org org/*.org`)
ORGFILES=""
ORGDIR=$(shell echo `pwd`)
+#+END_SRC
-#+end_src
** "make" commands [+2] :make:commands:
- build commands
- build
@@ -130,8 +121,7 @@ ORGDIR=$(shell echo `pwd`)
*** build commands [+1]
**** build rebuild
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+BEGIN_SRC makefile :tangle makefile
all: build
build: $(PRG_SRCDIR)/$(PRG_SRC)
@@ -140,11 +130,10 @@ build: $(PRG_SRCDIR)/$(PRG_SRC)
$(PRG_SRCDIR)/$(PRG_SRC)
rebuild: $(PRG_SRCDIR)/$(PRG_SRC) $(PRG_BINDIR)/$(PRG_BIN).o clean build
-#+end_src
-**** debug
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+END_SRC
+**** debug
+#+BEGIN_SRC makefile :tangle makefile
debug: $(PRG_SRCDIR)/$(PRG_SRC)
$(DC) $(DC_FLAGS) $(DC_FLAGS_DEBUG) \
$(DC_FLAG_BINOF)$(PRG_BINDIR)/$(PRG_BIN) \
@@ -164,20 +153,18 @@ debug_gdc: $(PRG_SRCDIR)/$(PRG_SRC)
$(GDC) $(GDC_FLAGS) $(GDC_FLAGS_DEBUG) \
$(GDC_FLAG_BINOF)$(PRG_BINDIR)/$(PRG_BIN) \
$(PRG_SRCDIR)/$(PRG_SRC)
-#+end_src
-**** release
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+END_SRC
+**** release
+#+BEGIN_SRC makefile :tangle makefile
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)
+#+END_SRC
-#+end_src
*** init clean distclean etc.
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+BEGIN_SRC makefile :tangle makefile
init:
mkdir -p $(PRG_SRCDIR); \
mkdir -p $(PRG_BINDIR);
@@ -194,11 +181,10 @@ distclean: init $(PRG_BINDIR) expunge
distclean_and_init: init $(PRG_BINDIR) expunge
mkdir -p $(PRG_SRCDIR); \
mkdir -p $(PRG_BINDIR);
+#+END_SRC
-#+end_src
*** Org Babel Tangle batch process command
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+BEGIN_SRC makefile :tangle makefile
tangle:
for f in $(ORGFILELIST); do \
ORGFILES="$$ORGFILES \"$$f\""; \
@@ -217,27 +203,26 @@ tangle:
(setq-local org-src-preserve-indentation t) \
(org-babel-tangle) \
(kill-buffer)) '($$ORGFILES)))" 2>&1
+#+END_SRC
-#+end_src
*** Git snapshot
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+BEGIN_SRC makefile :tangle makefile
gitsnapshot: distclean_and_init tangle
git commit -a
+#+END_SRC
-#+end_src
** phony
-#+name: makefile_maker
-#+BEGIN_SRC makefile :exports none
+#+BEGIN_SRC makefile :tangle makefile
.PHONY : all build rebuild debug release \
clean distclean init \
tangle
+#+END_SRC
-#+end_src
* sh script to batch process emacs org babel tangle :shell_script:tangle:
[http://orgmode.org/manual/Batch-execution.html]
creates a shell batch script called "tangle", that will tangle (emacs org babel tangle) org files in ./org/ to create .d source files in ./lib/sdp/ (similar functionality is contained within the "makefile" created by this "maker.org" file make tangle)
-#+BEGIN_SRC sh :tangle tangle :tangle-mode (identity #o755) :shebang #!/bin/sh
+
+#+BEGIN_SRC sh :tangle tangle :padline no :tangle-mode (identity #o755) :shebang #!/bin/sh
# -*- mode: shell-script -*-
# tangle files with org-mode
DIR=`pwd`
@@ -247,7 +232,7 @@ 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\""
+ ORGFILES="$ORGFILES \"$i\""
done
emacs --batch -Q -q \
--eval "(progn
@@ -260,11 +245,4 @@ emacs --batch -Q -q \
(setq-local org-src-preserve-indentation t)
(org-babel-tangle)
(kill-buffer)) '($ORGFILES)))" 2>&1 #|grep tangled
-#+end_src
-
-* tangle :tangle:
-** makefile: :makefile:
-#+name: tangle_ao_rgx
-#+BEGIN_SRC makefile :tangle makefile :exports none :noweb yes
-<<makefile_maker>>
-#+end_src
+#+END_SRC