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)"