program-name = nicethings program-source = $(program-name).rkt directory-local = ~/.local/bin directory-global = /usr/local/bin directory-source = src .PHONY: help help: @echo "Usage" @echo " make []" @echo "" @echo "Commands:" @echo " help" @echo " Displays this help message" @echo "" @echo " clean" @echo " Removes the $(program-name) executable from $(directory-source)/" @echo "" @echo " build" @echo " Creates a $(program-name) executable in your current directory" @echo "" @echo " install-global" @echo " Installs a $(program-name) executable in $(directory-global)/" @echo " Note: This command requires sudo or root access" @echo "" @echo " uninstall-global" @echo " Deletes a $(program-name) executable from $(directory-global)/" @echo " Note: This command requires sudo or root access" @echo "" @echo " install-local" @echo " Installs a $(program-name) executable in $(directory-local)/" @echo "" @echo " uninstall-local" @echo " Deletes a $(program-name) executable from $(directory-local)/" @echo "" @echo " install-custom location=" @echo " Installs a $(program-name) executable in a custom location" @echo "" @echo "Examples:" @echo " make help" @echo " make clean" @echo " make build" @echo " sudo make install-global" @echo " sudo make uninstall-global" @echo " make install-local" @echo " make uninstall-local" @echo " make install-custom location=~/bin/" @echo "" @echo "Note: You will have to manually uninstall custom installations" .PHONY: install install: @echo "Try running make help" .PHONY: uninstall uninstall: @echo "Try running make help" # Uninstallation --------------------------------------------------------- .PHONY: uninstall-local uninstall-local: @echo "Uninstalling $(program-name) from $(directory-local) ..." @rm $(directory-local)/$(program-name) @echo "Uninstallation complete!" .PHONY: uninstall-global uninstall-global: @echo "Uninstalling $(program-name) from $(directory-global) ..." @rm $(directory-global)/$(program-name) @echo "Uninstallation complete!" # Installation ----------------------------------------------------------- .PHONY: install-custom install-custom: build @echo "Moving ./$(program-name) to $(location) ..." @mv ./$(program-name) $(location) @echo "Installation complete!" .PHONY: install-local install-local: build @echo "Making $(directory-local) if it doesn't already exist ..." @mkdir -p $(directory-local) @echo "Moving ./$(program-name) to $(directory-local)/$(program-name) ..." @mv ./$(program-name) $(directory-local)/$(progam-name) @echo "Installation complete!" .PHONY: install-global install-global: build @echo "Moving ./$(program-name) to $(directory-global)/$(program-name) ..." @mv ./$(program-name) $(directory-global)/$(progam-name) @echo "Installation complete!" .PHONY: clean clean: @echo "Deleting any $(program-name) executables found in your current folder ..." @rm ./$(program-name) build: @echo "Creating a $(directory-source)/$(program-name) executable from $(directory-source)/$(program-source) ..." @raco exe $(directory-source)/$(program-source) @echo "Moving $(directory-source)/$(program-name) executable to your current folder ..." @mv $(directory-source)/$(program-name) ./