summaryrefslogtreecommitdiff
path: root/snippets/make.snippets
diff options
context:
space:
mode:
Diffstat (limited to 'snippets/make.snippets')
-rw-r--r--snippets/make.snippets50
1 files changed, 50 insertions, 0 deletions
diff --git a/snippets/make.snippets b/snippets/make.snippets
new file mode 100644
index 0000000..9104804
--- /dev/null
+++ b/snippets/make.snippets
@@ -0,0 +1,50 @@
+# base
+snippet base
+ .PHONY: clean, mrproper
+ CC = gcc
+ CFLAGS = -g -Wall
+
+ all: $1
+
+ %.o: %.c
+ $(CC) $(CFLAGS) -c -o $@ $<
+
+ ${1:out}: $1.o
+ $(CC) $(CFLAGS) -o $@ $+
+
+ clean:
+ rm -f *.o core.*
+
+ mrproper: clean
+ rm -f $1
+# add
+snippet add
+ ${1:out}: $1.o
+ $(CC) $(CFLAGS) -o $@ $+
+# print
+snippet print
+ print-%: ; @echo $*=$($*)
+# ifeq
+snippet if
+ ifeq (${1:cond0}, ${2:cond1})
+ ${0:${VISUAL}}
+ endif
+# ifeq ... else ... endif
+snippet ife
+ ifeq (${1:cond0}, ${2:cond1})
+ ${3:${VISUAL}}
+ else
+ ${0}
+ endif
+# else ...
+snippet el
+ else
+ ${0:${VISUAL}}
+# .DEFAULT_GOAL := target
+snippet default
+ .DEFAULT_GOAL := ${1}
+# help target for self-documented Makefile
+snippet help
+ help: ## Prints help for targets with comments
+ @cat $(MAKEFILE_LIST) | grep -E '^[a-zA-Z_-]+:.*?## .*$$' | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $\$1, $\$2}'
+ ${0}