MSG=@ IGNORE_DOT_FILES=. .. .git .gitmodules .gitignore DOT_FILES=$(filter-out $(IGNORE_DOT_FILES), $(wildcard .*)) DOT_INSTALLED=$(foreach dot, $(DOT_FILES), $(HOME)/$(dot)) ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) PKG_ARCH_BASE=aspell-en aspell-fr conky cscope ctags dunst eog firefox noto-fonts-emoji fzf git gmrun gnome-terminal genius gvim hunspell-fr hyphen-en hyphen-fr lightdm numlockx openssh polkit-gnome python3 sudo tint2 tmux unrar unzip udevil zsh PKG_ARCH_DEV=autopep8 bear cppcheck clang flake8 gcc hstr shellcheck strace ifeq ($(USER), root) $(info Should not be run as root) $(info Put youself in wheel group and add \"%wheel ALL=(ALL) NOPASSWD: ALL\" to /etc/sudoers) $(error Should not be run as root) endif all: conf conf:$(DOT_INSTALLED) git submodule update --init %_all: conf %_install_base %_install_dev udevil_install vim -c :PluginInstall -c :xa $(HOME)/%: $(ROOT_DIR)/% $(MSG)echo "installing $@" $(MSG)ln -s $< $@ .ONESHELL: /usr/bin/yay: sudo pacman -Sy --needed git base-devel git clone https://aur.archlinux.org/yay.git cd yay && makepkg -s -i cd .. rm -rf yay arch_install_base: /usr/bin/yay $(info going to install $(PKG_ARCH_BASE)) yay -Sy --needed $(PKG_ARCH_BASE) arch_install_dev: /usr/bin/yay $(info going to install $(PKG_ARCH_DEV)) yay -Sy --needed $(PKG_ARCH_DEV) udevil_install: arch_install_base ifneq (,$(wildcard /etc/systemd/system/multi-user.target.wants/devmon@$(USER).service)) $(MSG)echo "udevil already installed" else sudo systemctl enable devmon@$(USER) sudo systemctl start devmon@$(USER) endif