-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile.in
More file actions
66 lines (48 loc) · 1.38 KB
/
Copy pathMakefile.in
File metadata and controls
66 lines (48 loc) · 1.38 KB
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
LIBSRC := $(wildcard lib/*.c)
LIBOBJ := $(patsubst %.c,%.o,$(LIBSRC))
LIBARC := lib/pwm.a
TESTSRC := $(wildcard test/*.c)
TESTOBJ := $(patsubst %.c,%.o,$(TESTSRC))
TESTBIN := test/test
BUILTINSRC := $(wildcard builtin/*.c)
BUILTINOBJ := $(patsubst %.c,%.o,$(BUILTINSRC))
BUILTINBIN := $(patsubst %.o,%,$(BUILTINOBJ))
SRC := pwm.c
BIN := $(patsubst %.c,%,$(SRC))
CPPFLAGS += -D_POSIX_C_SOURCE=200112L
CFLAGS += -std=c99 -Wall -O2 -Ilib
LDFLAGS := -lgpgme -lgit2 $(LDFLAGS)
TESTCFLAGS = $(CFLAGS) -Itest
TESTLDFLAGS = -lcheck $(LDFLAGS)
BINDIR := @prefix@/bin
PWMEXECDIR := @pwmexecdir@
.PHONY: all
all: $(BIN) $(BUILTINBIN)
$(BIN): $(SRC)
$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^
$(BUILTINBIN): %: %.o $(LIBARC)
$(CC) $(LDFLAGS) -o $@ $^
$(BUILTINOBJ): %.o: %.c
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $^
$(LIBARC): $(LIBOBJ)
$(AR) csr $@ $^
$(LIBOBJ): %.o: %.c
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $^
.PHONY: test
test: $(TESTBIN)
$(TESTBIN)
$(TESTBIN): $(TESTOBJ) $(LIBARC)
$(CC) $(TESTLDFLAGS) -o $@ $^
$(TESTOBJ): %.o: %.c
$(CC) $(TESTCFLAGS) $(CPPFLAGS) -c -o $@ $^
.PHONY: doc
doc:
cm doc docurium.json
.PHONY: install
install:
install -Dm 0755 $(BIN) $(DESTDIR)$(BINDIR)/$(BIN)
install -dm 0755 $(DESTDIR)$(PWMEXECDIR)
install -m 0755 $(BUILTINBIN) $(DESTDIR)$(PWMEXECDIR)
.PHONY: clean
clean:
rm -f $(LIBOBJ) $(LIBARC) $(TESTOBJ) $(TESTBIN) $(BUILTINOBJ) $(BUILTINBIN) $(BIN)