home ?= $(HOME)

dotfiles_dir ?= $(home)/10sr_dotfiles
dotfiles_url_base=https://raw.githubusercontent.com/10sr/dotfiles/master/

localdir = $(home)/.local
vardir = $(home)/.var
bindir = $(localdir)/bin

current = $(shell date)
ostype = $(shell uname)

shrc_loadables = sh bash zsh
shrc_common_tpl =

emacs ?= emacs

all: default

tests = test_el test_sh
test: $(tests)

setups = setup_darwin setup_directories setup_emacs
setup: $(setups)

.PHONY: all default test $(tests) setup $(setups)




# setups
# ======

# create directories
# ------------------

setup_directories = $(localdir) $(vardir) $(bindir)
setup_directory: $(setup_directories)

$(localdir) $(vardir) $(bindir):
	mkdir -vp $@

# darwin
# ------

setup_darwins = setup_darwin_defaults setup_darwin_daemon
setup_darwin: $(setup_darwins)
.PHONY: $(setup_darwins)

setup_darwin_defaults:
# http://appdrill.net/60641/mac-boot-mute.html
#sudo nvram SystemAudioVolume=%80

# add quit entry in menu
	defaults write com.apple.finder QuitMenuItem -bool YES
# show full path on titlebar
	defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES
# do not show desktop icons
	defaults write com.apple.finder CreateDesktop -boolean false

	killall Finder

# disable dashboard
#defaults write com.apple.dashboard mcx-disabled -bool YES

setup_darwin_daemon:
	test "`launchctl getenv LC_ALL`" = C || sudo launchctl setenv LC_ALL C
	if ! (launchctl list | grep com.apple.locate) >/dev/null ;\
	then \
		sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist ;\
	fi

# emacs setup
# -----------

setup_emacs: emacs.el
	$(emacs) -q --debug-init --batch --load $< -f my-auto-install-package




# test
# ====

test_shs = test_shrc test_profile test_setup.sh test_xinitrc test_xprograms
test_sh: $(test_shs)
.PHONY: $(test_shs)

$(test_shs): test_%: %
	sh -exc 'for sh in $(shrc_loadables); do $$sh -n $<; done'

test_el: emacs.el
	EMACS_EL_DRY_RUN=t $(emacs) -q --debug-init --batch \
		--eval "(setq debug-on-error t)" --load $< --kill