forked from polprog/osdp-roger-acs
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
64 lines (47 loc) · 1.92 KB
/
Copy pathMakefile
File metadata and controls
64 lines (47 loc) · 1.92 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
CC = gcc
CFLAGS = -Wall -Ilibs -I.
LDFLAGS = -s -Wl,-warn-common -lpthread -lm -lc -lsqlite3 -lgpiod
#CFLAGS += -DDEBUG -DGPIO_DEBUG -DEPSO_DEBUG -DOSDP_VERBOSE_LEVEL=3
all:
@echo "make what?"
@echo "use \`make kd-idesco\` to build app for OSDP Idesco readers (RS485 on /dev/ttyS2)"
@echo "use \`make kd-roger\` to build app for Roger EPSO protocol readers (eg. PRT12EM)"
@echo "use \`make osdp-reader-test\` to build minimal OSDP lib reader test tool"
@echo "use \`make osdp-set-address\` to build OSDP reader set address tool"
%: build/%.elf
@echo "$< build successful"
%-lib: build/%.a
@echo "$< build successful"
# KD apps
build/kd-idesco.elf: build/door_controller/main.o build/door_controller/door_controller.o build/door_controller/user_db.o build/door_controller/eventSend.o build/door_controller/remoteControl.o \
build/libs/md5.o build/gpios/gpio-orangepizero.o \
build/readers/reader-idesco.o build/osdp.a
build/kd-roger.elf: build/door_controller/main.o build/door_controller/door_controller.o build/door_controller/user_db.o build/door_controller/eventSend.o build/door_controller/remoteControl.o \
build/libs/md5.o build/gpios/gpio-orangepizero.o \
build/readers/reader-roger.o build/epso.a
# tools
build/osdp-reader-test.elf: build/tools/osdp-reader-test.o build/osdp.a
build/osdp-set-address.elf: build/tools/osdp-set-address.o build/osdp.a
# Roger EPSO lib
build/epso.a: $(addprefix build/readers/epso/, epso.o)
# OSDPv2 lib
build/osdp.a: $(addprefix build/readers/osdp/, osdp.o crctable.o)
# include dependencies
include $(shell find build/ -name '*.d' 2>/dev/null)
# general compile, linking, etc rules
build/%.o: %.c build/%.d
$(CC) $(CFLAGS) -o $@ -c $<
build/%.a:
ar r $@ $^
ranlib $@
build/%.elf:
@echo Link... $@
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
# write dependencies rule
.PRECIOUS: build/%.d
build/%.d: %.c
mkdir -p $(@D)
@ echo "$@ $(@D)`$(CC) $(CFLAGS) -MM $<`" > $@
.PHONY: clean
clean:
rm -fr build