# This will make heavy use of the "$+commands[cmd]" function in bash. Make sure its installed. _SHELL := $(shell which zsh ) ifndef _SHELL $(error ZSH is not installed on this machine. This makefile requires ZSH features) endif SHELL := $(_SHELL) # Helper scripts for setting up and taking down links. LIB_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) mk_link := $(LIB_DIR)/helper/mk_link rm_link := $(LIB_DIR)/helper/rm_link report := LAST_RETURN=$$? $(LIB_DIR)/helper/report cmd_exist = $(shell (($$+commands[$1])) && echo true || echo false ) # Shortcut for the XDG dir if it exist. default to ~/.confg XDG_DIR := $${XDG_CONFIG_DIR:-~/.config} # Some things will OS specific. # With this you can use `$(IS_MAC) && echo "I'm a Mac" || echo "I'm not a Mac"` ifeq ($(shell uname), Darwin) IS_MAC=true else IS_LINUX=true endif IS_MAC?=false IS_LINUX?=false # TURN THIS OFF FOR DEBUGGING MAKEFLAGS += --silent .PHONY: install update init remove