50 lines
877 B
Text
50 lines
877 B
Text
# 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}
|