| @@ -5,29 +5,30 @@ | |||
| home ?= $(HOME) | |||
| dotfiles_url_base = https://raw.githubusercontent.com/10sr/dotfiles/master/ | |||
| dotfiles_git = git@github.com:10sr/dotfiles.git | |||
| dotfiles_git_pub = http://github.com/10sr/dotfiles.git | |||
| dotfiles_url_base := https://raw.githubusercontent.com/10sr/dotfiles/master/ | |||
| dotfiles_git := git@github.com:10sr/dotfiles.git | |||
| dotfiles_git_pub := http://github.com/10sr/dotfiles.git | |||
| ifeq (,$(DOTFILES_DIR)) | |||
| ifeq (,$(dotfiles_dir)) | |||
| ifeq (,$(DOTFILES_DIR)) | |||
| $(warning "Neigher DOTFILES_DIR nor dotfiles_dir not defined.") | |||
| $(warning "Use $(home)/10sr_dotfiles for default.") | |||
| dotfiles_dir := $(home)/10sr_dotfiles | |||
| else | |||
| dotfiles_dir := $(DOTFILES_DIR) | |||
| endif | |||
| endif | |||
| DOTFILES_DIR ?= $(home)/10sr_dotfiles | |||
| dotfiles_dir ?= $(DOTFILES_DIR) | |||
| localdir = $(home)/.local | |||
| vardir = $(home)/.var | |||
| bindir = $(localdir)/bin | |||
| localdir := $(home)/.local | |||
| vardir := $(home)/.var | |||
| bindir := $(localdir)/bin | |||
| current = $(shell date) | |||
| uname = $(shell uname) | |||
| current := $(shell date) | |||
| uname := $(shell uname) | |||
| shrc_loadables = sh bash zsh | |||
| shrc_common_tpl = | |||
| shrc_loadables := sh bash zsh | |||
| shrc_common_tpl := | |||
| emacs ?= $(shell which emacs 2>/dev/null) | |||
| git ?= $(shell which git 2>/dev/null) | |||
| @@ -38,13 +39,13 @@ grep ?= GREP_OPTIONS= $(shell which grep 2>/dev/null) | |||
| all: default | |||
| tests = test-el | |||
| tests := test-el | |||
| test: test-syntax $(tests) | |||
| test_syntaxes = test-syntax-el test-syntax-sh | |||
| test_syntaxes := test-syntax-el test-syntax-sh | |||
| test-syntax: $(test_syntaxes) | |||
| setups = setup-darwin setup-directories setup-emacs setup-gitconf \ | |||
| setups := setup-darwin setup-directories setup-emacs setup-gitconf \ | |||
| setup-repository setup-util setup-rc | |||
| # `make setup` to setup these all sounds to be too match | |||
| setup-all: $(setups) | |||
| @@ -70,38 +71,38 @@ check-syntax: test-syntax | |||
| # Is this usefull? Just checking uname is not enough? | |||
| ismsys = | |||
| iscygwin = | |||
| iswindows = | |||
| ismsys := | |||
| iscygwin := | |||
| iswindows := | |||
| isdarwin = | |||
| isfreebsd = | |||
| isbsd = | |||
| isdarwin := | |||
| isfreebsd := | |||
| isbsd := | |||
| islinux = | |||
| islinux := | |||
| ifneq (,$(findstring MINGW,$(uname))) | |||
| ismsys = t | |||
| ismsys := t | |||
| endif | |||
| ifneq (,$(findstring CYGWIN,$(uname))) | |||
| iscygwin = t | |||
| iscygwin := t | |||
| endif | |||
| ifneq (,$(ismsys)$(iscygwin)) | |||
| iswindows = t | |||
| iswindows := t | |||
| endif | |||
| ifneq (,$(findstring Darwin,$(uname))) | |||
| isdarwin = t | |||
| isdarwin := t | |||
| endif | |||
| ifneq (,$(findstring FreeBSD,$(uname))) | |||
| isfreebsd = t | |||
| isfreebsd := t | |||
| endif | |||
| ifneq (,$(isdarwin)$(isfreebsd)) | |||
| isbsd = t | |||
| isbsd := t | |||
| endif | |||
| ifneq (,$(findstring Linux,$(uname))) | |||
| islinux = t | |||
| islinux := t | |||
| endif | |||
| @@ -111,8 +112,8 @@ endif | |||
| # setup repository | |||
| # ---------------- | |||
| # setup git repository | |||
| # -------------------- | |||
| setup-repository: $(dotfiles_dir)/.git | |||
| @@ -134,11 +135,11 @@ endif | |||
| # utils | |||
| # ----- | |||
| setup_utils = colortable16.sh 256colors2.pl pacapt ack-2.12 | |||
| setup_utils := colortable16.sh 256colors2.pl pacapt ack-2.12 | |||
| setup-util: $(setup_utils) | |||
| .PHONY: $(setup_utils) | |||
| setup_utils_path = $(setup_utils:%=$(bindir)/%) | |||
| setup_utils_path := $(setup_utils:%=$(bindir)/%) | |||
| $(setup_utils): %: $(bindir)/% | |||
| @@ -147,17 +148,17 @@ $(setup_utils_path): | |||
| chmod +x "$@" | |||
| colortable16.sh: \ | |||
| util_url = https://gist.github.com/10sr/6852317/raw/colortable16.sh | |||
| 256colors2.pl: util_url = https://gist.github.com/10sr/6852331/raw/256colors2.pl | |||
| pacapt: util_url = https://github.com/icy/pacapt/raw/ng/pacapt | |||
| ack-2.12: util_url = http://beyondgrep.com/ack-2.12-single-file | |||
| util_url := https://gist.github.com/10sr/6852317/raw/colortable16.sh | |||
| 256colors2.pl: util_url := https://gist.github.com/10sr/6852331/raw/256colors2.pl | |||
| pacapt: util_url := https://github.com/icy/pacapt/raw/ng/pacapt | |||
| ack-2.12: util_url := http://beyondgrep.com/ack-2.12-single-file | |||
| # create directories | |||
| # ------------------ | |||
| setup_directories = $(localdir) $(vardir) $(bindir) | |||
| setup_directories := $(localdir) $(vardir) $(bindir) | |||
| setup-directory: $(setup_directories) | |||
| $(localdir) $(vardir) $(bindir): | |||
| @@ -168,7 +169,7 @@ $(localdir) $(vardir) $(bindir): | |||
| # darwin setup | |||
| # ------------ | |||
| setup_darwins = setup-darwin-defaults setup-darwin-daemon | |||
| setup_darwins := setup-darwin-defaults setup-darwin-daemon | |||
| setup-darwin: $(setup_darwins) | |||
| .PHONY: $(setup_darwins) | |||
| @@ -210,10 +211,10 @@ setup-emacs: emacs.el | |||
| # ---------------- | |||
| ifneq (,$(git)) | |||
| git_conf = $(git) config --global | |||
| git_conf := $(git) config --global | |||
| endif | |||
| xz = $(shell which xz 2>/dev/null) | |||
| xz := $(shell which xz 2>/dev/null) | |||
| setup-gitconf: | |||
| ifeq (,$(git)) | |||
| @@ -271,11 +272,18 @@ endif | |||
| # setup rc files | |||
| # -------------- | |||
| setup_rcs = setup-rc-vimrc setup-rc-tmux.conf setup-rc-emacs.el | |||
| # Generate load codes from the files themselves. | |||
| # Load codes are defined by following SETUP_LOAD: indicator. | |||
| # String DOTFILES_DIR in the load codes will be replaced into the value of | |||
| # $(dotfiles_dir). | |||
| # If append_load is non-empty, the load codes are appended to $(topfile), | |||
| # otherwise the code will be just printed out to stdout. | |||
| setup_rcs := setup-rc-vimrc setup-rc-tmux.conf setup-rc-emacs.el | |||
| setup-rc: $(setup_rcs) | |||
| .PHONY: $(setup_rcs) | |||
| command_extract_setup_load = $(grep) -e 'SETUP_LOAD: ' | \ | |||
| command_extract_setup_load := $(grep) -e 'SETUP_LOAD: ' | \ | |||
| sed -e 's/^.*SETUP_LOAD: //' -e 's|DOTFILES_DIR|$(dotfiles_dir)|' | |||
| $(setup_rcs): setup-rc-%: $(dotfiles_dir)/% | |||
| @@ -286,17 +294,21 @@ else | |||
| cat "$<" | $(command_extract_setup_load) | tee -a "$(topfile)" | |||
| endif | |||
| setup-rc-vimrc: topfile = $(home)/.vimrc | |||
| setup-rc-tmux.conf: topfile = $(home)/.tmux.conf | |||
| setup-rc-emacs.el: topfile = $(home)/.emacs.d/init.el | |||
| setup-rc-vimrc: topfile := $(home)/.vimrc | |||
| setup-rc-tmux.conf: topfile := $(home)/.tmux.conf | |||
| setup-rc-emacs.el: topfile := $(home)/.emacs.d/init.el | |||
| $(dotfiles_dir)/%: setup-repository | |||
| # test | |||
| # ==== | |||
| test_els = test-el-emacs.el | |||
| test_els := test-el-emacs.el | |||
| test-el: $(test_els) | |||
| .PHONY: $(test_els) | |||
| @@ -312,7 +324,7 @@ $(test_els): test-el-%: % | |||
| # test syntax | |||
| # =========== | |||
| test_syntax_shs = test-syntax-shrc test-syntax-profile \ | |||
| test_syntax_shs := test-syntax-shrc test-syntax-profile \ | |||
| test-syntax-xinitrc test-syntax-xprograms | |||
| test-syntax-sh: $(test_syntax_shs) | |||
| .PHONY: $(test_syntax_shs) | |||
| @@ -322,11 +334,11 @@ $(test_syntax_shs): test-syntax-%: % | |||
| test_syntax_els = test-syntax-emacs.el | |||
| test_syntax_els := test-syntax-emacs.el | |||
| test-syntax-el: $(test_syntax_els) | |||
| .PHONY: $(test_syntax_els) | |||
| sexp_elisp_syntax_check = \ | |||
| sexp_elisp_syntax_check := \ | |||
| (with-temp-buffer \ | |||
| (emacs-lisp-mode) \ | |||
| (insert-file-contents file) \ | |||