51 lines
877 B
Plaintext
51 lines
877 B
Plaintext
|
# 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}
|