dotless

automated dotfiles setup for all my systems
Log | Files | Refs | README | LICENSE

Makefile (3536B)


      1 #
      2 # dotless (pdpmake / POSIX make)
      3 #
      4 # cowmonk <cowmonk@based.pt>
      5 #
      6 
      7 .POSIX:
      8 SHELL   = /bin/sh
      9 
     10 PREFIX ?= /
     11 TOP     = $(shell pwd)
     12 SRCDIR  = $(TOP)/sources
     13 EXTDIR  = $(TOP)/extracted
     14 
     15 VER_dwm  = 6.8
     16 NAME_dwm = dwm-$(VER_dwm)
     17 URL_dwm  = https://dl.suckless.org/dwm/$(NAME_dwm).tar.gz
     18 
     19 VER_st  = 0.9.3
     20 NAME_st = st-$(VER_st)
     21 URL_st  = https://dl.suckless.org/st/$(NAME_st).tar.gz
     22 
     23 VER_dmenu  = 5.4
     24 NAME_dmenu = dmenu-$(VER_dmenu)
     25 URL_dmenu  = https://dl.suckless.org/tools/$(NAME_dmenu).tar.gz
     26 
     27 VER_slstatus  = 1.1
     28 NAME_slstatus = slstatus-$(VER_slstatus)
     29 URL_slstatus  = https://dl.suckless.org/tools/$(NAME_slstatus).tar.gz
     30 
     31 LAPTOP  ?= 0  # laptop mode enables certain keybinds and battery monitoring
     32 SCRIPTS ?= 0  # whether or not to install the useful scripts (auto enable if laptop mode is enabled)
     33 VOL     ?= 0  # default volume step percent (default is 5 when at 0)
     34 OBSD    ?= 0  # enables support for OBSD (in config.mk and stuff)
     35 MIXER   ?= 0  # /dev/mixer support, if not then it falls back to amixer hacky script (only on linux)
     36 FONT    ?= "" # set the global font for dmenu, and dwm (default: cozette:size=10)
     37 ST_FONT ?= "" # set the font for st (default: cozette:size=12).
     38 
     39 .PHONY: all build install clean distclean
     40 
     41 all: build
     42 
     43 $(SRCDIR)/%.tar.gz:
     44 	@[ -d "$(SRCDIR)" ] || mkdir -p "$(SRCDIR)"
     45 	@echo "pulling all sources..."
     46 	@if [ ! -f "$(SRCDIR)/$(NAME_dwm).tar.gz" ]; then \
     47 	 	echo "pulling ${NAME_dwm}"; \
     48 		curl -fLo "${SRCDIR}/${NAME_dwm}.tar.gz"      ${URL_dwm}; \
     49 	else \
     50 		printf "> \033[92malready pulled $(NAME_dwm).tar.gz...\n\033[0m"; \
     51 	fi
     52 	@if [ ! -f "$(SRCDIR)/$(NAME_st).tar.gz" ]; then \
     53 		echo "pulling ${NAME_st}"; \
     54 		curl -fLo "${SRCDIR}/${NAME_st}.tar.gz"       ${URL_st}; \
     55 	else \
     56 		printf "> \033[92malready pulled $(NAME_st).tar.gz...\n\033[0m"; \
     57 	fi
     58 	@if [ ! -f "$(SRCDIR)/$(NAME_dmenu).tar.gz" ]; then \
     59 		echo "pulling ${NAME_dmenu}"; \
     60 		curl -fLo "${SRCDIR}/${NAME_dmenu}.tar.gz"    ${URL_dmenu}; \
     61 	else \
     62 		printf "> \033[92malready pulled $(NAME_dmenu).tar.gz...\n\033[0m"; \
     63 	fi
     64 	@if [ ! -f "$(SRCDIR)/$(NAME_slstatus).tar.gz" ]; then \
     65 		echo "pulling ${NAME_slstatus}"; \
     66 		curl -fLo "${SRCDIR}/${NAME_slstatus}.tar.gz" ${URL_slstatus}; \
     67 	else \
     68 		printf "> \033[92malready pulled $(NAME_slstatus).tar.gz...\n\033[0m"; \
     69 	fi
     70 	@printf "\033[1mpulled all sources!\n\033[0m"
     71 
     72 $(EXTDIR)/%: $(SRCDIR)/%.tar.gz
     73 	@echo "extracting..."
     74 	@[ -d "$(EXTDIR)" ] || mkdir -p "$(EXTDIR)"
     75 	@if [ ! -f "$(EXTDIR)/$(NAME_dwm)" ]; then \
     76 		echo "extracting $(NAME_dwm).tar.gz..."; \
     77 		tar -xzf "$(SRCDIR)/$(NAME_dwm).tar.gz" -C      "$(EXTDIR)"; \
     78 	else \
     79 		printf "> \033[92malready extracted $(NAME_dwm).tar.gz...\n\033[0m"; \
     80 	fi
     81 	@if [ ! -f "$(SRCDIR)/$(NAME_st)" ]; then \
     82 		echo "extracting $(NAME_st).tar.gz..."; \
     83 		tar -xzf "$(SRCDIR)/$(NAME_st).tar.gz" -C       "$(EXTDIR)"; \
     84 	else \
     85 		printf "> \033[92malready extracted $(NAME_st).tar.gz...\n\033[0m"; \
     86 	fi
     87 	@if [ ! -f "$(SRCDIR)/$(NAME_dmenu)" ]; then \
     88 		echo "extracting $(NAME_dmenu).tar.gz..."; \
     89 		tar -xzf "$(SRCDIR)/$(NAME_dmenu).tar.gz" -C    "$(EXTDIR)"; \
     90 	else \
     91 		printf "> \033[92malready extracted $(NAME_dmenu).tar.gz...\n\033[0m"; \
     92 	fi
     93 	@if [ ! -f "$(SRCDIR)/$(NAME_slstatus)" ]; then \
     94 		echo "extracting $(NAME_slstatus).tar.gz..."; \
     95 		tar -xzf "$(SRCDIR)/$(NAME_slstatus).tar.gz" -C "$(EXTDIR)"; \
     96 	else \
     97 		printf "> \033[92malready extracted $(NAME_slstatus).tar.gz...\n\033[0m"; \
     98 	fi
     99 	@printf "\033[1mextracted all sources!\n\033[0m"
    100 
    101 build: $(EXTDIR)/%
    102 
    103 
    104 install:
    105 
    106 clean:
    107 
    108 distclean: clean
    109 	@rm -rf "$(SRCDIR)"