-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMakefile
More file actions
107 lines (82 loc) · 2.59 KB
/
Copy pathMakefile
File metadata and controls
107 lines (82 loc) · 2.59 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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#
# Copyright (c) OpenIPC https://openipc.org The Prosperity Public License 3.0.0
#
# JoyCam — Makefile
#
CROSS ?=
CC := $(CROSS)gcc
STRIP := $(CROSS)strip
VERSION := 1.4.0
CFLAGS := -std=gnu99 -D_GNU_SOURCE -Os
CFLAGS += -DVERSION=\"$(VERSION)\"
CFLAGS += -Wall -Wextra -Werror=implicit-function-declaration -Wunused-result
CFLAGS += -ffunction-sections -fdata-sections
LDFLAGS := -Wl,--gc-sections
JOYCAM_OBJS := joycam.o joycrsf.o joyibus.o joysbus.o joyrfc2217.o
DESTDIR ?=
.PHONY: all clean install
all: crsf_rx crsf_tx ibus_rx ibus_tx sbus_rx sbus_tx joystick
# --- CRSF receiver ---
crsf_rx: crsf_rx.o $(JOYCAM_OBJS)
$(CC) $(LDFLAGS) -o $@ $^
$(STRIP) --strip-all $@
crsf_rx.o: crsf_rx.c joycam.h
$(CC) $(CFLAGS) -c -o $@ $<
# --- CRSF transmitter ---
crsf_tx: crsf_tx.o $(JOYCAM_OBJS)
$(CC) $(LDFLAGS) -o $@ $^
$(STRIP) --strip-all $@
crsf_tx.o: crsf_tx.c joycam.h
$(CC) $(CFLAGS) -c -o $@ $<
# --- IBUS receiver ---
ibus_rx: ibus_rx.o $(JOYCAM_OBJS)
$(CC) $(LDFLAGS) -o $@ $^
$(STRIP) --strip-all $@
ibus_rx.o: ibus_rx.c joycam.h
$(CC) $(CFLAGS) -c -o $@ $<
# --- IBUS transmitter ---
ibus_tx: ibus_tx.o $(JOYCAM_OBJS)
$(CC) $(LDFLAGS) -o $@ $^
$(STRIP) --strip-all $@
ibus_tx.o: ibus_tx.c joycam.h
$(CC) $(CFLAGS) -c -o $@ $<
# --- SBUS receiver ---
sbus_rx: sbus_rx.o $(JOYCAM_OBJS)
$(CC) $(LDFLAGS) -o $@ $^
$(STRIP) --strip-all $@
sbus_rx.o: sbus_rx.c joycam.h
$(CC) $(CFLAGS) -c -o $@ $<
# --- SBUS transmitter ---
sbus_tx: sbus_tx.o $(JOYCAM_OBJS)
$(CC) $(LDFLAGS) -o $@ $^
$(STRIP) --strip-all $@
sbus_tx.o: sbus_tx.c joycam.h
$(CC) $(CFLAGS) -c -o $@ $<
# --- Joystick ---
joystick: joystick.o $(JOYCAM_OBJS)
$(CC) $(LDFLAGS) -o $@ $^
$(STRIP) --strip-all $@
joystick.o: joystick.c joycam.h
$(CC) $(CFLAGS) -c -o $@ $<
# --- Shared objects ---
joycam.o: joycam.c joycam.h
$(CC) $(CFLAGS) -c -o $@ $<
joycrsf.o: joycrsf.c joycam.h
$(CC) $(CFLAGS) -c -o $@ $<
joyibus.o: joyibus.c joycam.h
$(CC) $(CFLAGS) -c -o $@ $<
joysbus.o: joysbus.c joycam.h
$(CC) $(CFLAGS) -c -o $@ $<
joyrfc2217.o: joyrfc2217.c joycam.h
$(CC) $(CFLAGS) -c -o $@ $<
install: crsf_rx crsf_tx ibus_rx ibus_tx sbus_rx sbus_tx joystick
mkdir -p $(DESTDIR)/usr/local/bin
install -m 0755 crsf_rx $(DESTDIR)/usr/local/bin/
install -m 0755 crsf_tx $(DESTDIR)/usr/local/bin/
install -m 0755 ibus_rx $(DESTDIR)/usr/local/bin/
install -m 0755 ibus_tx $(DESTDIR)/usr/local/bin/
install -m 0755 sbus_rx $(DESTDIR)/usr/local/bin/
install -m 0755 sbus_tx $(DESTDIR)/usr/local/bin/
install -m 0755 joystick $(DESTDIR)/usr/local/bin/
clean:
rm -f *.o crsf_rx crsf_tx ibus_rx ibus_tx sbus_rx sbus_tx joystick