GIT_BIN=/usr/bin/git PACKAGE=git CUSTOM_BINS= $(wildcard bin/*) GIT_CONFIG=config GIT_CONFIG_OUT=$(HOME)/.config/git/config GIT_GLOBAL_CONFIG=$(HOME)/.gitconfig CONFIG_DIR=$(HOME)/.config/git HOME_BIN_DIR=$(HOME)/bin ROOT_APT=sudo aptitude OUT=$(GIT_CONFIG_OUT) .PHONY: clean_install clean_install: clean install install: $(GIT_BIN) install_bins config clean: clean_config clean_package clean_bins $(GIT_BIN): $(ROOT_APT) install $(PACKAGE) install_bins: $(HOME_BIN_DIR) cp $(CUSTOM_BINS) $(HOME_BIN_DIR) .ONESHELL: config: $(CONFIG_DIR) $(GIT_BIN) ifeq ("$(wildcard $(GIT_GLOBAL_CONFIG))","") rm -f $(GIT_CONFIG_OUT) echo "Please provide email address for git" read EMAIL git config --global user.email $${EMAIL} endif cp $(GIT_CONFIG) $(GIT_CONFIG_OUT) $(CONFIG_DIR): mkdir -p $(CONFIG_DIR) $(HOME_BIN_DIR): mkdir -p $(HOME_BIN_DIR) clean_package: $(ROOT_APT) purge $(PACKAGE) clean_config: rm -f $(GIT_CONFIG_OUT) clean_bins: rm -f $(CUSTOM_BINS:bin%=$(HOME_BIN_DIR)%)