/
Makefile
47 lines (34 loc) · 1.04 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/make -f
PROJNAME := ccode
CFILES := $(wildcard src/*.c)
OBJECTS := $(CFILES:.c=.o)
PREFIX := /usr/local
CFLAGS += -I$(shell llvm-config --includedir) -std=gnu99
LDFLAGS += -L$(shell llvm-config --libdir) -lclang
.SUFFIXES: .a .c .h .o
.PHONY: all static clear clean install uninstall types
all: $(OBJECTS)
@echo "\033[1;32m LINK\033[0m" $(PROJNAME)
@$(CC) $(LDFLAGS) $(OBJECTS) -o "$(PROJNAME)"
%.o: %.c %.h
@echo "\033[1m CC\033[0m" $@ "<-" $<
@$(CC) $(CFLAGS) -c $< -o $@
%.o: %.c
@echo "\033[1m CC\033[0m" $@ "<-" $<
@$(CC) $(CFLAGS) -c $< -o $@
clear:
@echo "\033[1;31m RM\033[0m" $(OBJECTS)
@rm -f $(OBJECTS)
clean: clear
@echo "\033[1;31m RM\033[0m" "$(PROJNAME)"
@rm -f "$(PROJNAME)"
install:
install -m 755 "$(PROJNAME)" "$(PREFIX)/bin/"
uninstall:
rm "$(PREFIX)/bin/$(PROJNAME)"
types: types.vim
types.vim: src/*.[ch]
@echo -e "\033[1m MAKE\033[0m" types.vim
@exuberant-ctags --c-kinds=gstu -o- src/*.[ch] |\
awk 'BEGIN{echo -e("syntax keyword Type\t")}\
{echo -e("%s ", $$1)}END{print ""}' > $@