diff options
author | Ralph Amissah <ralph.amissah@gmail.com> | 2019-11-14 21:23:31 -0500 |
---|---|---|
committer | Ralph Amissah <ralph.amissah@gmail.com> | 2019-11-19 16:55:31 -0500 |
commit | 6825a6865c9aa7f235a3825b0e08f3834745ed86 (patch) | |
tree | 79a128d168cf30bdb8bd4aa130f9e19b0c3ec5ae /org/spine_build_scaffold.org | |
parent | 0.8.3 (if exists) get site config & output path (diff) |
0.9.0 spine (doc-reform renamed)
Diffstat (limited to 'org/spine_build_scaffold.org')
-rw-r--r-- | org/spine_build_scaffold.org | 1397 |
1 files changed, 1397 insertions, 0 deletions
diff --git a/org/spine_build_scaffold.org b/org/spine_build_scaffold.org new file mode 100644 index 0000000..695cff0 --- /dev/null +++ b/org/spine_build_scaffold.org @@ -0,0 +1,1397 @@ +-*- mode: org -*- +#+TITLE: spine (doc_reform) (project) makefile +#+DESCRIPTION: makefile for spine +#+FILETAGS: :spine:makefile: +#+AUTHOR: Ralph Amissah +#+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] +#+COPYRIGHT: Copyright (C) 2015 - 2019 Ralph Amissah +#+LANGUAGE: en +#+STARTUP: indent content +#+OPTIONS: H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _: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 +#+PROPERTY: header-args :padline no :exports code :noweb yes +#+EXPORT_SELECT_TAGS: export +#+EXPORT_EXCLUDE_TAGS: noexport +#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) + +[[./org/spine.org][spine.org]] [[./org/][org/]] + +* makefile :makefile: +** settings [+2] :settings: +*** git version stamp :git:version: + +#+BEGIN_SRC makefile :tangle ../makefile +PROG_VER_GIT :=$(shell echo `git describe --long --tags | sed -e "s/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g"`) +PROG_VER_DECLARED :=$(shell echo `cat ./views/version.txt | grep --color=never "enum" | sed 's/.\+(\([0-9]\+\),[ \t]\+\([0-9]\+\),[ \t]\+\([0-9]\+\)[ \t]*).\+/\1.\2.\3/g'`) +#+END_SRC + +*** dub (build tool) :dub: + +#+BEGIN_SRC makefile :tangle ../makefile +DUB=dub +DUB_FLAGS=-v --force --compiler= +#+END_SRC + +*** Project Details :project:spine: + +#+BEGIN_SRC makefile :tangle ../makefile +PRG_NAME=spine +PRG_NICKAME=rad +PRG_NAME_DIR=$(shell echo `echo $(PRG_NAME) | sed -e "s/-/_/g"`) +PRG_SRC=$(PRG_NAME).d +PRG_SRCDIR=./src +PRG_BIN=$(PRG_NAME) +PRG_BINDIR=./bin +PRG_DOCDIR=./docs +#+END_SRC + +*** Emacs Org settings :settings:emacs:org:tangle: + +#+BEGIN_SRC makefile :tangle ../makefile +EMACSLISP=/usr/share/emacs/site-lisp +ORG_VER_AVAILABLE=$(shell echo `ls -d ~/.emacs.d/elpa/org-???????? | cut -d '-' -f2`) +EMACSLISP_ORG=~/.emacs.d/elpa/org-$($(shell echo $(ORG_VER_AVAILABLE))) +ORG_CONTRIB_VER_AVAILABLE=$(shell echo `ls -d ~/.emacs.d/elpa/org-plus-???????? | cut -d '-' -f2`) +EMACSLISP_ORG_CONTRIB=~/.emacs.d/elpa/org-plus-contrib-$($(shell echo $(ORG_CONTRIB_VER_AVAILABLE))) +ORGFILELIST=$(shell echo `ls -1 org/*.org`) +ORGFILES="" +ORGDIR :=$(shell echo `pwd`) +#+END_SRC + +*** Markup Samples +**** pods + +#+BEGIN_SRC makefile :tangle ../makefile +SiSU_MARKUP_SAMPLES_FIND_PODS= \ +find data/pod -maxdepth 2 -name pod.manifest | cut -f 1-3 -d / | sort + +SiSU_MARKUP_SAMPLES_PODS_FOUND= \ +$(SiSU_MARKUP_SAMPLES_FIND_PODS) | xargs + +SiSU_MARKUP_SAMPLES_POD = \ +data/pod/accelerando.charles_stross \ +data/pod/alices_adventures_in_wonderland.lewis_carroll \ +data/pod/content.cory_doctorow \ +data/pod/democratizing_innovation.eric_von_hippel \ +data/pod/down_and_out_in_the_magic_kingdom.cory_doctorow \ +data/pod/for_the_win.cory_doctorow \ +data/pod/free_as_in_freedom_2.richard_stallman_and_the_free_software_revolution.sam_williams.richard_stallman \ +data/pod/free_culture.lawrence_lessig \ +data/pod/free_for_all.peter_wayner \ +data/pod/gpl2.fsf \ +data/pod/gpl3.fsf \ +data/pod/gullivers_travels.jonathan_swift \ +data/pod/little_brother.cory_doctorow \ +data/pod/live-manual \ +data/pod/sisu-manual \ +data/pod/the_autonomous_contract.ralph_amissah \ +data/pod/the_cathedral_and_the_bazaar.eric_s_raymond \ +data/pod/the_public_domain.james_boyle \ +data/pod/the_wealth_of_networks.yochai_benkler \ +data/pod/through_the_looking_glass.lewis_carroll \ +data/pod/two_bits.christopher_kelty \ +data/pod/un_contracts_international_sale_of_goods_convention_1980 \ +data/pod/viral_spiral.david_bollier +#+END_SRC + +**** dir + +#+BEGIN_SRC makefile :tangle ../makefile +SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND = \ +find data/sisudir/media/text -name *.ss[tm] | sort | xargs + +SiSU_MARKUP_SAMPLES_DIR = \ +data/sisudir/media/text/accelerando.charles_stross.sst \ +data/sisudir/media/text/alices_adventures_in_wonderland.lewis_carroll.sst \ +data/sisudir/media/text/content.cory_doctorow.sst \ +data/sisudir/media/text/democratizing_innovation.eric_von_hippel.sst \ +data/sisudir/media/text/down_and_out_in_the_magic_kingdom.cory_doctorow.sst \ +data/sisudir/media/text/ffa_tmp.sst \ +data/sisudir/media/text/for_the_win.cory_doctorow.sst \ +data/sisudir/media/text/free_as_in_freedom_2.richard_stallman_and_the_free_software_revolution.sam_williams.richard_stallman.sst \ +data/sisudir/media/text/free_culture.lawrence_lessig.sst \ +data/sisudir/media/text/free_for_all.peter_wayner.sst \ +data/sisudir/media/text/gpl2.fsf.sst \ +data/sisudir/media/text/gpl3.fsf.sst \ +data/sisudir/media/text/gullivers_travels.jonathan_swift.sst \ +data/sisudir/media/text/little_brother.cory_doctorow.sst \ +data/sisudir/media/text/sisu_markup.sst \ +data/sisudir/media/text/sisu_markup_stress_test.sst \ +data/sisudir/media/text/sisu_markup_test.sst \ +data/sisudir/media/text/table_special_markup.sst \ +data/sisudir/media/text/the_autonomous_contract.ralph_amissah.sst \ +data/sisudir/media/text/the_cathedral_and_the_bazaar.eric_s_raymond.sst \ +data/sisudir/media/text/the_public_domain.james_boyle.sst \ +data/sisudir/media/text/the_wealth_of_networks.yochai_benkler.sst \ +data/sisudir/media/text/through_the_looking_glass.lewis_carroll.sst \ +data/sisudir/media/text/two_bits.christopher_kelty.sst \ +data/sisudir/media/text/un_contracts_international_sale_of_goods_convention_1980.sst \ +data/sisudir/media/text/viral_spiral.david_bollier.sst +#+END_SRC + +** _make_ commands [+2] :make:commands: + +- build commands + - build + - debug + - release +- init, clean, distclean etc. + - init + - clean + - expunge + - distclean + - distclean_and_init +- org babel tangle + - tangle +- git snapshot + - gitsnapshot + +*** build commands [+1] :build:compile: +**** _dub_ build rebuild :dub: +***** all compiler builds :all:dmd:gdc:ldc: +****** all builds +******* default + +#+BEGIN_SRC makefile :tangle ../makefile +default: ldc +#+END_SRC + +******* sample markup file list + +#+BEGIN_SRC makefile :tangle ../makefile +markup_samples: + find data/pod -name pod.manifest | cut -f 1-3 -d / | sort; \ +find data/sisudir/media/text -name *.ss[tm] | sort +#+END_SRC + +#+BEGIN_SRC makefile :tangle ../makefile +markup_pod_samples: + find data/pod -name pod.manifest | cut -f 1-3 -d / | sort +#+END_SRC + +#+BEGIN_SRC makefile :tangle ../makefile +markup_dir_samples: + find data/sisudir/media/text -name *.ss[tm] | sort +#+END_SRC + +******* quick :quick: +******** default :default: + +#+BEGIN_SRC makefile :tangle ../makefile +all: dmd ldc gdc +#+END_SRC + +******** version :version: + +#+BEGIN_SRC makefile :tangle ../makefile +all_ver: dmd_ver ldc_ver gdc_ver +#+END_SRC + +******** debug :debug: + +#+BEGIN_SRC makefile :tangle ../makefile +all_debug: dmd_debug gdc_debug ldc_debug +#+END_SRC + +******** _meson_ build :meson: + +#+BEGIN_SRC makefile :tangle ../makefile +meson: + rm -r build && mkdir build + meson --buildtype=debugoptimized build + ninja -C build +mesonredo: + rm -r build && mkdir build + meson --buildtype=debugoptimized build + ninja -C build +mesonclean: clean skel tangle + meson --buildtype=debugoptimized build + ninja -C build +#+END_SRC + +******* clean & tangle :clean:tangle: +******** default :default: + +#+BEGIN_SRC makefile :tangle ../makefile +all_clean: clean tangle dmd ldc gdc +#+END_SRC + +******** version :version: + +#+BEGIN_SRC makefile :tangle ../makefile +all_ver_clean: clean tangle dmd_ver ldc_ver gdc_ver +#+END_SRC + +******** debug :debug: + +#+BEGIN_SRC makefile :tangle ../makefile +all_debug_ver: dmd_debug_ver gdc_debug_ver ldc_debug_ver +all_debug_clean_ver: clean tangle dmd_debug_ver gdc_debug_ver ldc_debug_ver +#+END_SRC + +***** individual compiler builds :each: +****** dmd :dmd: +******* quick :quick: +******** default :default: + +#+BEGIN_SRC makefile :tangle ../makefile +dmd: + $(DUB) --compiler=dmd --config=dmd -b release +#+END_SRC + +******** debug :debug: + +#+BEGIN_SRC makefile :tangle ../makefile +dmd_debug: + $(DUB) --compiler=dmd --config=dmd -b debug +#+END_SRC + +******** version :version: + +- assumes git tags with program version + +#+BEGIN_SRC makefile :tangle ../makefile +dmd_ver: + $(DUB) --compiler=dmd --config=dmd-version + mv bin/spine-dmd-ver bin-archive/spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-dmd + notify-send -t 0 'D dmd compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-dmd' +dmd_clean_ver: clean tangle dmd_ver +#+END_SRC + +******* clean & tangle :clean:tangle: + +#+BEGIN_SRC makefile :tangle ../makefile +dmd_rel: expunge skel tangle + $(DUB) --compiler=dmd --config=spine-release +dmd_rel_tangle: tangle + $(DUB) --compiler=dmd --config=spine-dmd +dmd_rel_expunge_tangle: expunge skel tangle dmd_rel_tangle +dmd_debug_tangle: tangle + $(DUB) --compiler=dmd --config=spine-dmd-debug +#+END_SRC + +****** gdc :gdc: +******* quick :quick: +******** default :default: + +#+BEGIN_SRC makefile :tangle ../makefile +gdc: + $(DUB) --compiler=gdc --config=gdc -b release +#+END_SRC + +******** debug :debug: + +#+BEGIN_SRC makefile :tangle ../makefile +gdc_debug: + $(DUB) --compiler=gdc --config=gdc -b debug +#+END_SRC + +******** version :version: + +- assumes git tags with program version + +#+BEGIN_SRC makefile :tangle ../makefile +gdc_ver: + $(DUB) --compiler=gdc --config=gdc-version + mv bin/spine-gdc-ver bin-archive/spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-gdc + notify-send -t 0 'D gdc compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-gdc' +gdc_clean_ver: clean tangle gdc_ver +#+END_SRC + +******* clean & tangle :clean:tangle: + +#+BEGIN_SRC makefile :tangle ../makefile +gdc_rel: expunge skel tangle + $(DUB) --compiler=gdc --config=spine-release +gdc_rel_tangle: tangle + $(DUB) --compiler=gdc --config=spine-gdc +gdc_rel_expunge_tangle: expunge skel tangle gdc_rel_tangle +gdc_debug_tangle: tangle + $(DUB) --compiler=gdc --config=spine-gdc-debug +#+END_SRC + +****** ldc :ldc: +******* quick :quick: +******** default :default: + +#+BEGIN_SRC makefile :tangle ../makefile +ldc: + $(DUB) --compiler=ldc2 --config=ldc -b release +#+END_SRC + +******** debug :debug: + +#+BEGIN_SRC makefile :tangle ../makefile +ldc_debug: + $(DUB) --compiler=ldc2 --config=ldc -b debug +#+END_SRC + +******** version :version: + +- assumes git tags with program version + +#+BEGIN_SRC makefile :tangle ../makefile +ldc_ver: + $(DUB) --compiler=ldc2 --config=ldc-version + mv bin/spine-ldc-ver bin-archive/spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-ldc + notify-send -t 0 'D ldc2 compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-ldc' +ldc_clean_ver: clean tangle ldc_ver +#+END_SRC + +******* clean & tangle :clean:tangle: + +#+BEGIN_SRC makefile :tangle ../makefile +ldc_rel: expunge skel tangle + $(DUB) --compiler=ldc2 --config=spine-release +ldc_rel_tangle: tangle + $(DUB) --compiler=ldc2 --config=spine-ldc +ldc_rel_expunge_tangle: expunge skel tangle ldc_rel_tangle +ldc_debug_tangle: tangle + $(DUB) --compiler=ldc2 --config=spine-ldc-debug +#+END_SRC + +***** generic +****** init clean distclean etc. :clean: + +#+BEGIN_SRC makefile :tangle ../makefile +reinit: clean skel tangle +skel: + mkdir -p $(PRG_BINDIR); \ + mkdir -p $(PRG_BINDIR)-archive; \ + mkdir -p build; \ + mkdir -p subprojects; \ + mkdir -p views; \ + mkdir -p data; \ + mkdir -p util; \ + mkdir -p $(PRG_SRCDIR)/$(PRG_NAME_DIR)/conf; \ + mkdir -p $(PRG_SRCDIR)/$(PRG_NAME_DIR)/meta; \ + mkdir -p $(PRG_SRCDIR)/$(PRG_NAME_DIR)/output; \ + mkdir -p $(PRG_SRCDIR)/$(PRG_NAME_DIR)/share; \ + mkdir -p $(PRG_SRCDIR)/$(PRG_NAME_DIR)/source; \ + mkdir -p $(PRG_SRCDIR)/$(PRG_NAME_DIR); \ + mkdir -p $(PRG_BINDIR); +init: skel +clean: + rm -rf build; \ + rm -rf subprojects; \ + rm -rf $(PRG_SRCDIR); \ + rm -rf $(PRG_DOCDIR); +clean_bin: + rm $(PRG_BINDIR)/* +clean_src: + rm -rf $(PRG_SRCDIR); +clean_docs: + rm -rf $(PRG_DOCDIR) +expunge: + rm -f dub.selections.json; \ + rm -rf build; \ + rm -rf subprojects; \ + rm -rf $(PRG_SRCDIR); \ + rm -rf $(PRG_BINDIR); \ + rm -rf $(PRG_DOCDIR); +distclean: expunge +distclean_and_init: expunge + mkdir -p views; \ + mkdir -p util; \ + mkdir -p $(PRG_SRCDIR)/$(PRG_NAME_DIR); \ + mkdir -p $(PRG_BINDIR); +#+END_SRC + +****** version :version: + +#+BEGIN_SRC makefile :tangle ../makefile +ver: + echo spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT) +#+END_SRC + +****** tangle build rebuild :clean:tangle:build: + +#+BEGIN_SRC makefile :tangle ../makefile +clean_tangle_build: clean tangle build +tangle_build: tangle 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 +makefile_new: + make -k tangle_maker +restart: clean tangle +#+END_SRC + +*** testrun (program against document markup) +**** pods +****** find files + +#+BEGIN_SRC makefile :tangle ../makefile +find_pods: + $(SiSU_MARKUP_SAMPLES_FIND_PODS) +#+END_SRC + +***** dmd +****** find files + +#+BEGIN_SRC makefile :tangle ../makefile +dmd_testrun_find: + ./bin/spine-dmd -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_pod \ +data/pod/sisu-manual +dmd_testrun_find_pod_source: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ +./bin/spine-ldc -v --source --html --epub \ +--output-dir=tmp/program_output_pod +dmd_testrun_find_pod_pod: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ +./bin/spine-dmd -v --pod \ +--output-dir=tmp/program_output_pod +dmd_testrun_find_pod_html: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ +./bin/spine-dmd -v --html \ +--output-dir=tmp/program_output_pod +dmd_testrun_find_pod_epub: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ +./bin/spine-dmd -v --epub \ +--output-dir=tmp/program_output_pod +dmd_testrun_find_pod_all: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ +./bin/spine-dmd -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_pod +#+END_SRC + +****** path list + +#+BEGIN_SRC makefile :tangle ../makefile +dmd_testrun_paths_pod_source: + ./bin/spine-dmd -v --source \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +dmd_testrun_paths_pod_pod: + ./bin/spine-dmd -v --pod \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +dmd_testrun_paths_pod_html: + ./bin/spine-dmd -v --html \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +dmd_testrun_paths_pod_epub: + ./bin/spine-dmd -v --epub \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +dmd_testrun_paths_pod_all: + ./bin/spine-dmd -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +#+END_SRC + +***** gdc +****** find files + +#+BEGIN_SRC makefile :tangle ../makefile +gdc_testrun_find: + ./bin/spine-gdc -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_pod \ +data/pod/sisu-manual +gdc_testrun_find_pod_source: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ +./bin/spine-gdc -v --source \ +--output-dir=tmp/program_output_pod +gdc_testrun_find_pod_pod: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ +./bin/spine-gdc -v --pod \ +--output-dir=tmp/program_output_pod +gdc_testrun_find_pod_html: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ +./bin/spine-gdc -v --html \ +--output-dir=tmp/program_output_pod +gdc_testrun_find_pod_epub: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ +./bin/spine-gdc -v --epub \ +--output-dir=tmp/program_output_pod +gdc_testrun_find_pod_all: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ +./bin/spine-gdc -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_pod +#+END_SRC + +****** path list + +#+BEGIN_SRC makefile :tangle ../makefile +gdc_testrun_paths: + ./bin/spine-gdc -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_pod \ +data/pod/sisu-manual +gdc_testrun_paths_pod_source: + ./bin/spine-gdc -v --source \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +gdc_testrun_paths_pod_pod: + ./bin/spine-gdc -v --pod \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +gdc_testrun_paths_pod_html: + ./bin/spine-gdc -v --html \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +gdc_testrun_paths_pod_epub: + ./bin/spine-gdc -v --epub \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +gdc_testrun_paths_pod_all: + ./bin/spine-gdc -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +#+END_SRC + +***** ldc +****** find files + +#+BEGIN_SRC makefile :tangle ../makefile +ldc_testrun_find: + ./bin/spine-ldc -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_pod \ +data/pod/sisu-manual +ldc_testrun_find_pod_source: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ + ./bin/spine-ldc -v --source \ +--output-dir=tmp/program_output_pod +ldc_testrun_find_pod_pod: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ + ./bin/spine-ldc -v --pod \ +--output-dir=tmp/program_output_pod +ldc_testrun_find_pod_html: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ + ./bin/spine-ldc -v --html \ +--output-dir=tmp/program_output_pod +ldc_testrun_find_pod_epub: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ + ./bin/spine-ldc -v --epub \ +--output-dir=tmp/program_output_pod +ldc_testrun_find_pod_all: + $(SiSU_MARKUP_SAMPLES_PODS_FOUND) \ + ./bin/spine-ldc -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_pod +#+END_SRC + +****** path list + +#+BEGIN_SRC makefile :tangle ../makefile +ldc_testrun_paths: + ./bin/spine-ldc -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_pod \ +data/pod/sisu-manual +ldc_testrun_paths_pod_source: + ./bin/spine-ldc -v --source \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +ldc_testrun_paths_pod_pod: + ./bin/spine-ldc -v --pod \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +ldc_testrun_paths_pod_html: + ./bin/spine-ldc -v --html \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +ldc_testrun_paths_pod_epub: + ./bin/spine-ldc -v --epub \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +ldc_testrun_paths_pod_all: + ./bin/spine-ldc -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_pod \ +$(SiSU_MARKUP_SAMPLES_POD) +#+END_SRC + +**** dir +***** dmd +****** find files + +#+BEGIN_SRC makefile :tangle ../makefile +dmd_testrun_find_dir_source: + $(SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND) \ +./bin/spine-dmd -v --source \ +--output-dir=tmp/program_output_dir +dmd_testrun_find_dir_pod: + $(SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND) \ +./bin/spine-dmd -v --pod \ +--output-dir=tmp/program_output_dir +dmd_testrun_find_dir_html: + $(SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND) \ +./bin/spine-dmd -v --html \ +--output-dir=tmp/program_output_dir +dmd_testrun_find_dir_epub: + $(SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND) \ +./bin/spine-dmd -v --epub \ +--output-dir=tmp/program_output_dir +dmd_testrun_find_dir_all: + $(SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND) \ +./bin/spine-dmd -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_dir +#+END_SRC + +****** file list + +#+BEGIN_SRC makefile :tangle ../makefile +dmd_testrun_filelist_dir_source: + ./bin/spine-dmd -v --source \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +dmd_testrun_filelist_dir_pod: + ./bin/spine-dmd -v --pod \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +dmd_testrun_filelist_dir_html: + ./bin/spine-dmd -v --html \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +dmd_testrun_filelist_dir_epub: + ./bin/spine-dmd -v --epub \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +dmd_testrun_filelist_dir_all: + ./bin/spine-dmd -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +#+END_SRC + +***** gdc +****** find files + +#+BEGIN_SRC makefile :tangle ../makefile +gdc_testrun_find_dir_source: + ./bin/spine-gdc -v --source \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +gdc_testrun_find_dir_pod: + $(SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND) \ +./bin/spine-gdc -v --pod \ +--output-dir=tmp/program_output_dir +gdc_testrun_find_dir_html: + $(SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND) \ +./bin/spine-gdc -v --html \ +--output-dir=tmp/program_output_dir +gdc_testrun_find_dir_epub: + $(SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND) \ +./bin/spine-gdc -v --epub \ +--output-dir=tmp/program_output_dir +gdc_testrun_find_dir_all: + $(SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND) \ +./bin/spine-gdc -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_dir +#+END_SRC + +****** file list + +#+BEGIN_SRC makefile :tangle ../makefile +gdc_testrun_filelist_dir_source: + ./bin/spine-gdc -v --source \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +gdc_testrun_filelist_dir_pod: + ./bin/spine-gdc -v --pod \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +gdc_testrun_filelist_dir_html: + ./bin/spine-gdc -v --html \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +gdc_testrun_filelist_dir_epub: + ./bin/spine-gdc -v --epub \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +gdc_testrun_filelist_dir_all: + ./bin/spine-gdc -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +#+END_SRC + +***** ldc +****** find files + +#+BEGIN_SRC makefile :tangle ../makefile +ldc_testrun_find_dir_source: + $(SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND) \ +./bin/spine-ldc -v --source \ +--output-dir=tmp/program_output_dir +ldc_testrun_find_dir_pod: + $(SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND) \ +./bin/spine-ldc -v --pod \ +--output-dir=tmp/program_output_dir +ldc_testrun_find_dir_html: + $(SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND) \ +./bin/spine-ldc -v --html \ +--output-dir=tmp/program_output_dir +ldc_testrun_find_dir_epub: + $(SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND) \ +./bin/spine-ldc -v --epub \ +--output-dir=tmp/program_output_dir +ldc_testrun_find_dir_all: + $(SiSU_MARKUP_SAMPLES_DIR_FILES_FOUND) \ +./bin/spine-ldc -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_dir +#+END_SRC + +****** file list + +#+BEGIN_SRC makefile :tangle ../makefile +ldc_testrun_filelist_dir_source: + ./bin/spine-ldc -v --source \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +ldc_testrun_filelist_dir_pod: + ./bin/spine-ldc -v --pod \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +ldc_testrun_filelist_dir_html: + ./bin/spine-ldc -v --html \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +ldc_testrun_filelist_dir_epub: + ./bin/spine-ldc -v --epub \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +ldc_testrun_filelist_dir_all: + ./bin/spine-ldc -v --source --html --epub --sqlite-discrete \ +--sqlite-create --sqlite-update \ +--output-dir=tmp/program_output_dir \ +$(SiSU_MARKUP_SAMPLES_DIR) +#+END_SRC + +*** org babel tangle batch process command :tangle: +**** tangle: org babel tangle *.org + +#+BEGIN_SRC makefile :tangle ../makefile +tangle: skel + 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 +#+END_SRC + +**** tangle maker: org babel tangle maker.org, makefile new + +#+BEGIN_SRC makefile :tangle ../makefile +tangle_maker: + for f in $(ORGFILELIST); do \ + ORGFILES="\"org/dr_build_scaffold.org\""; \ + 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 \".\")) \ + (setq-local org-src-preserve-indentation t) \ + (org-babel-tangle) \ + (kill-buffer)) '($$ORGFILES)))" 2>&1 +#+END_SRC + +*** git snapshot + +#+BEGIN_SRC makefile :tangle ../makefile +gitsnapshot: distclean tangle + git commit -a +#+END_SRC + +** phony :phony: + +#+BEGIN_SRC makefile :tangle ../makefile +.PHONY : all build rebuild debug release \ + distclean init \ + tangle gitsnapshot +#+END_SRC + +* dub.sdl :dub:sdl:config: +Every DUB package should contain a [[http://code.dlang.org/package-format?lang=json][dub.json]] (or [[http://code.dlang.org/package-format?lang=sdl][dub.sdl]]) +** header (including dependencies) :header: + +#+BEGIN_SRC sh :tangle ../dub.sdl +name "spine" +description "sisu document parser" +homepage "http://sisudoc.org" +authors "Ralph Amissah" +copyright "Copyright (C) 2016 - 2019 Ralph Amissah" +license "AGPL-3.0+" +targetPath "./bin" +#sourcePath "./src/doc_reform" +stringImportPaths "./views" +buildRequirements "allowWarnings" +targetType "executable" +platforms "posix" +dependency "d2sqlite3" version="~>0.18.3" # https://code.dlang.org/packages/d2sqlite3 http://biozic.github.io/d2sqlite3/d2sqlite3.html + subconfiguration "d2sqlite3" "all-included" +dependency "imageformats" version="~>7.0.1" # https://code.dlang.org/packages/imageformats https://github.com/lgvz/imageformats +dependency "dyaml" version="~>0.8.0" +dependency "tinyendian" version="~>0.2.0" // for dyaml +#+END_SRC + +** default + +time (dub --compiler=dmd -b release) +time (dub --compiler=ldc2 -b release) +time (dub --compiler=gdc -b release) + +#+BEGIN_SRC sh :tangle ../dub.sdl +configuration "default" { + targetName "spine" + postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine'" +} +#+END_SRC + +** dmd + +time (dub --compiler=dmd --config=dmd -b dmd) +time (dub --compiler=dmd --config=dmd -b dmd-release) + +#+BEGIN_SRC sh :tangle ../dub.sdl +configuration "dmd" { + targetName "spine-dmd" + postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-dmd'" +} +buildType "dmd" { + dflags "-J=views" "-I=src/doc_reform" + buildOptions "verbose" "inline" + buildRequirements "allowWarnings" +} +buildType "dmd-release" { + dflags "-J=views" "-I=src/doc_reform" + buildOptions "verbose" "releaseMode" "optimize" "inline" +} +configuration "dmd-version" { + dflags "-J=views" "-I=src/doc_reform" + buildOptions "verbose" "releaseMode" "optimize" "inline" + targetName "spine-dmd-ver" + postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-dmd-ver'" +} +#+END_SRC + +** ldc + +time (dub --compiler=ldc2 --config=ldc -b ldc) +time (dub --compiler=ldc2 --config=ldc -b ldc-release) + +#+BEGIN_SRC sh :tangle ../dub.sdl +configuration "ldc" { + targetName "spine-ldc" + postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-ldc'" +} +buildType "ldc" { + dflags "-O2" "-J=views" "-I=src/doc_reform" + buildOptions "verbose" "optimize" "inline" + buildRequirements "allowWarnings" +} +buildType "ldc-release" { + dflags "-O2" "-J=views" "-I=src/doc_reform" + buildOptions "verbose" "optimize" "inline" "releaseMode" +} +configuration "ldc-version" { + dflags "-O2" "-J=views" "-I=src/doc_reform" + buildOptions "verbose" "optimize" "inline" "releaseMode" + targetName "spine-ldc-ver" + postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-ldc-ver'" +} +#+END_SRC + +** gdc + +time (dub --compiler=gdc --config=gdc -b gdc) +time (dub --compiler=gdc --config=gdc -b gdc-release) + +#+BEGIN_SRC sh :tangle ../dub.sdl +configuration "gdc" { + targetName "spine-gdc" + postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-gdc'" +} +buildType "gdc" { + dflags "-O2" "-J=views" "-I=src/doc_reform" + lflags "-lz" + buildOptions "optimize" "inline" + buildRequirements "allowWarnings" +} +buildType "gdc-release" { + dflags "-O2" "-J=views" "-I=src/doc_reform" + lflags "-lz" + buildOptions "verbose" "optimize" "inline" "releaseMode" +} +configuration "gdc-version" { + dflags "-O2" "-J=views" "-I=src/doc_reform" + lflags "-lz" + buildOptions "verbose" "optimize" "inline" "releaseMode" + targetName "spine-gdc-ver" + postGenerateCommands "/usr/bin/notify-send -t 0 'D executable ready' 'spine-gdc-ver'" +} +#+END_SRC + +*** generic :generic: +**** build (sdp) :release: + +#+BEGIN_SRC sh +configuration "build" { + name "build" + targetType "executable" + platforms "posix" + targetName "bin/spine" + dflags "-J=views" "-I=src/doc_reform" + buildOptions "verbose" "releaseMode" "optimize" "inline" + postGenerateCommands "/usr/bin/notify-send -t 0 'D release executable ready' 'spine'" +} +#+END_SRC + +* meson +** notes + +http://mesonbuild.com/D.html +http://mesonbuild.com/Dependencies.html#Dub +- create and move to subdirectory + rm -r build; mkdir build && cd build + +- build + + - regular build (faster compile time): + meson && ninja + + - optimized build (faster program run time): + meson --buildtype=debugoptimized && ninja + + - time build + time ( meson --buildtype=debugoptimized && ninja ) + +- other + - flags + DFLAGS= DC=ldc2 meson .. + +*** projects + +tree -fi ./src |rg "\.d$" + +#+BEGIN_SRC sh :tangle ../meson.build +project('spine', 'd', + license: 'AGPL3', + version: '0.26.5', + meson_version: '>=0.46' +) +spine_sources = [ + 'src/doc_reform/spine.d', + 'src/doc_reform/conf/compile_time_info.d', + 'src/doc_reform/meta/conf_make_meta_json.d', + 'src/doc_reform/meta/conf_make_meta_structs.d', + 'src/doc_reform/meta/conf_make_meta_yaml.d', + 'src/doc_reform/meta/defaults.d', + 'src/doc_reform/meta/doc_debugs.d', + 'src/doc_reform/meta/metadoc.d', + 'src/doc_reform/meta/metadoc_from_src.d', + 'src/doc_reform/meta/metadoc_harvest.d', + 'src/doc_reform/meta/metadoc_harvests_authors.d', + 'src/doc_reform/meta/metadoc_harvests_topics.d', + 'src/doc_reform/meta/metadochead.d', + 'src/doc_reform/meta/metadoc_show_summary.d', + 'src/doc_reform/meta/object_setter.d', + 'src/doc_reform/meta/package.d', + 'src/doc_reform/meta/rgx.d', + 'src/doc_reform/output/create_zip_file.d', + 'src/doc_reform/output/defaults.d', + 'src/doc_reform/output/epub3.d', + 'src/doc_reform/output/html.d', + 'src/doc_reform/output/hub.d', + 'src/doc_reform/output/latex.d', + 'src/doc_reform/output/odt.d', + 'src/doc_reform/output/package.d', + 'src/doc_reform/output/paths_output.d', + 'src/doc_reform/output/rgx.d', + 'src/doc_reform/output/source_pod.d', + 'src/doc_reform/output/sqlite.d', + 'src/doc_reform/output/xmls_css.d', + 'src/doc_reform/output/xmls.d', + 'src/doc_reform/share/defaults.d', + 'src/doc_reform/source/paths_source.d', + 'src/doc_reform/source/read_config_files.d', + 'src/doc_reform/source/read_source_files.d', +] +source_root = meson.source_root() +sources_dir = include_directories('src/') +# Dependencies +dep_d2sqlite3 = dependency('d2sqlite3', version: '>= 0.16.2', fallback: ['d2sqlite3', 'd2sqlite3_dep']) +dep_imageformats = dependency('imageformats-d', version: '>= 7.0.0', fallback: ['imageformats-d', 'imageformats_dep']) +# executable +spine_exe = executable('rad', + [spine_sources], + include_directories : [sources_dir], + d_import_dirs: [include_directories('views')], + dependencies : [ + dep_d2sqlite3, + dep_imageformats, + ], + install : true +) +#+END_SRC + +** subprojects + +#+BEGIN_SRC sh :tangle ../subprojects/README +d2sqlite3 +- dub + - https://code.dlang.org/packages/d2sqlite3 +- upstream + - https://github.com/biozic/d2sqlite3 +- mathias + - https://github.com/ximion/d2sqlite3.git + +imageformats +- dub + - https://code.dlang.org/packages/imageformats +- upstream + - https://github.com/lgvz/imageformats +- mathias + - https://github.com/ximion/imageformats.git +#+END_SRC + +*** d2sqlite3 + +#+BEGIN_SRC sh :tangle ../subprojects/d2sqlite3.wrap +[wrap-git] +directory = d2sqlite3 +url = https://github.com/ximion/d2sqlite3.git +revision = head +#+END_SRC + +*** imageformats-d + +#+BEGIN_SRC sh :tangle ../subprojects/imageformats-d.wrap +[wrap-git] +directory = imageformats-d +url = https://github.com/ximion/imageformats.git +revision = head +#+END_SRC + +* .gitignore :gitignore: + +#+BEGIN_SRC sh :tangle ../.gitignore +# git ls-files --others --exclude-from=.git/info/exclude +#./.dub/** +* +!.gitignore +!COPYRIGHT +!README +!makefile +!version.txt +!dub*.json +!dub.sdl +!meson.build +!tangle +!*.org +!*.d +!*.rb +!conf.sdl +!org +!util +!src +!src/doc_reform +!src/doc_reform/* +!src_yaml +!src_yaml/doc_reform +!src_yaml/doc_reform/* +!data +!data/* +!data/src/** +!data/src_yaml/** +!data/pod/** +!data/pod_yaml/** +!*.sst +!*.ssm +!**/*.sst +!**/*.ssm +!subprojects +!**/*.wrap +!subprojects/*.wrap +!pod.manifest +!sisu_document_make +!config_local_site +!sisudoc +!views +!docs/*.html +!notes +notes/** +!notes/*.org +!notes/sisu-description.sst +!notes/reminders +!notes/reminders/** +.dub/** +tmp/** +*_.org +*_.d +*_.txt +*_ +*~ +\#* +*.\#* +#!*/ +#*~ +#\#* +#*.\#* +#!debian +#!debian/* +#.reggae/** +#+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 ./src/doc_reform/ +(similar functionality is contained within the "makefile" created by this +"dr_build_scaffold.org" file make tangle) + +#+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 +ORG_VER_AVAILABLE=$(shell echo `ls -d ~/.emacs.d/elpa/org-???????? | cut -d '-' -f2`) +EMACSLISP_ORG=~/.emacs.d/elpa/org-$($(shell echo $(ORG_VER_AVAILABLE))) +ORG_CONTRIB_VER_AVAILABLE=$(shell echo `ls -d ~/.emacs.d/elpa/org-plus-???????? | cut -d '-' -f2`) +EMACSLISP_ORG_CONTRIB=~/.emacs.d/elpa/org-plus-contrib-$($(shell echo $(ORG_CONTRIB_VER_AVAILABLE))) +# 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 + +* __END__ +** build +*** dub + +#+BEGIN_SRC sh :tangle no +dub build -h +#+END_SRC + +#+BEGIN_SRC sh +time (dub --compiler=dmd --config=spine-dmd --debug=steps) +time (dub --compiler=ldc2 --config=spine-ldc --debug=steps) +time (dub --compiler=gdc --config=spine-gdc --debug=steps) + +time (dub --compiler=ldc2 --config=spine-ldc --debug=checkdoc --debug=summary --debug=dumpdoc) +time (dub --compiler=ldc2 --config=spine-ldc --debug=io) +time (dub --compiler=ldc2 --config=spine-ldc --debug=checkdoc --debug=summary --debug=dumpdoc --debug=io) +time (dub --compiler=ldc2 --config=spine-ldc-debug --debug=io) +time (dub --compiler=gdc --config=spine-gdc-debug --debug=io) +time (dub --compiler=dmd --config=spine-dmd-debug --debug=io) +#+END_SRC + +*** make + +#+BEGIN_SRC sh +time make dmd +time make gdc +time make ldc +time make gdc ldc +time make all +time make all_ver +time make dmd_ver ldc_ver gdc_ver + +time make restart +time make restart ldc +time make tangle ldc + +time make ldc_testrun_find_pod_epub +#+END_SRC + +** dub zfunc :zfunc: +*** ,dubdmd :dmd: + +#+BEGIN_SRC sh :tangle no +time dub --compiler=dmd -v --force +#+END_SRC + +*** ,dubldc :ldc: + +#+BEGIN_SRC sh :tangle no +time dub --compiler=ldc2 -v --force +#+END_SRC + +*** ,dubgdc :gdc: + +#+BEGIN_SRC sh :tangle no +time dub --compiler=gdc -v --force +#+END_SRC + +** git +*** project version + +echo $(git describe --long --tags | sed 's/^[ a-z_-]\+\([0-9.]\+\)/\1/;s/\([^-]*-g\)/r\1/;s/-/./g') + +*** what files changed +git whatchanged --since="1 day ago" --oneline --name-only --pretty=format: | sort -u +git log --since="1 day ago" --name-only --pretty=format: | sort -u + +** test run +*** e.g. +time (./bin/spine-ldc --source --html -v --output-dir=tmp/program-output data/pod/sisu-manual/media/text/en/sisu_markup.sst ) + +time (./bin/spine-ldc --source --html -v --output-dir=tmp/program-output data/pod/sisu-manual ) +time (./bin/spine-ldc --source --html -v --output-dir=tmp/program-output data/pod/the_wealth_of_networks.yochai_benkler ) +time (./bin/spine-ldc --source --html -v --output-dir=tmp/program-output data/pod/live-manual ) + +time (~sdp2/bin/spine-ldc --pod --source --html --epub --sqlite-create --sqlite-update -v sisudoc/media/text/en/sisu_markup_stress_test.sst sisudoc/media/text/en/the_wealth_of_networks.yochai_benkler.sst ) + +can point to directory containing sisudoc.txt file (listing which files to process) + +time (~sdp2/bin/spine-ldc --html -v sisudoc) +# will process source files listed in sisudoc.txt for appropriate files and dir structure + +e.g. live-manual a multilingual document (with source file inserts .ssi) + +time (~sdp2/bin/spine-ldc --html --lang=en,es -v sisudoc) + +time ( find data/pod -name pod.manifest | sort | xargs ./bin/spine-ldc --source --html --epub -v --output-dir=tmp/program-output ) + +time ( find data/pod -maxdepth 2 -name pod.manifest | sort | xargs ./bin/spine-ldc --source --html --epub -v --output-dir=tmp/program-output ) +time ( find data/sisudir/media/text -name *.ss[tm] | sort | xargs ./bin/spine-ldc --source --html --epub -v --output-dir=tmp/program-output ) + +find data/pod -maxdepth 2 -name pod.manifest | sort | xargs + +find data/sisudir/media/text -name *.ss[tm] | sort | xargs + +*** list markup files +find data/pod -name pod.manifest | sort +find data/sisudir/media/text -name *.ss[tm] | sort + +time make ldc_testrun_paths_pod_pod +time make ldc_testrun_paths_pod_pod | ag "^\".+\"|NOT found" +time make ldc_testrun_find_pod_pod +time make ldc_testrun_find_dir_pod +time make ldc_testrun_filelist_dir_pod +** misc +*** compilers + +- [X] Set D_COMPILER (one of DMD LDC or GDC) +- [X] Set debug flags (using DMD standard flag -deb + +[[http://wiki.dlang.org/Compilers][D Compilers wiki https://wiki.dlang.org/Compilers]] +[[http://dlang.org/download.html][D Compilers download http://dlang.org/download.html]] + +*** dub :dub: + +https://github.com/dlang/dub/ +http://code.dlang.org/getting_started +http://code.dlang.org/docs/commandline + +**** setup +***** dub json or sdlang + +Every DUB package should contain a [[http://code.dlang.org/package-format?lang=json][dub.json]] or [[http://code.dlang.org/package-format?lang=sdl][dub.sdl]] +https://code.dlang.org/package-format?lang=sdl +https://code.dlang.org/packages/sdlang-d +https://github.com/Abscissa/SDLang-D/blob/master/HOWTO.md + +https://code.dlang.org/docs/commandline + +***** dub dependencies + +dub list +dub upgrade +dub fetch taggedalgebraic +dub fetch libinputvisitor +dub fetch unit-threaded ? + +sdp ~master: /home/ralph/grotto/repo/git.repo/utils/spine-x/ +/home/ralph/.dub/packages/* + +**** build +***** debug flags + +#+BEGIN_SRC sh +biblio +biblio_sorted +bibliosorted +block +bookindex +bookindexmatch +bookindexraw +check +checkdoc +code +comment +dumpdoc write out document contents, with object type and ocn +endnotes +endnotes_build +footnotes +footnotesdone +group +header +header_and_content +header1 +headerjson +headermakejson +headermetadatajson +heading +headings +headingsfound +insert +io +munge +node +objectrelated1 +objectrelated2 +objects +ocnoff +para +parabullet +parabulletindent +paraindent +paraindenthang +parent +poem +quote +raw +source +srclines +structattrib +summary +table +toc +#+END_SRC |