forked from Rubberazer/JETGPIO
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
67 lines (53 loc) · 1.33 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
SHELL:=/bin/bash
CC=gcc
MODELFILE=get_chip_id.c
MODELTARGET=get_chip_id
C_EXTENSION=.c
OBJ_EXTENSION=.o
CFLAGS=-c -Wall -Werror -fpic
LDFLAGS=-shared
LIB=libjetgpio.so
LIBS=-lpthread -lrt -lm
all: step1 step2 step3
step1:
$(CC) -Wall -Werror -o $(MODELTARGET) $(MODELFILE)
./$(MODELTARGET)
step2:
$(eval MODEL := $(shell cat ./hardware))
step3:
$(CC) $(CFLAGS) $(MODEL)$(C_EXTENSION)
$(CC) $(LDFLAGS) -o $(LIB) $(MODEL)$(OBJ_EXTENSION) $(LIBS)
step4:
install -m 0755 $(LIB) /usr/lib
install -m 0644 jetgpio.h /usr/include
ldconfig
ldconfig -p | grep libjetgpio.so
@if [ $(MODEL) = "orin" ] || [ $(MODEL) = "orinagx" ]; then\
cd ./Jetclocks && make;\
make install;\
fi
step5:
$(eval MODEL := $(shell find /lib/modules/$(uname -r) -name "jetclocks.ko" -exec basename {} \;))
step6:
rm -f /usr/lib/$(LIB)
rm -f /usr/include/jetgpio.h
ldconfig
@if [ "$(MODEL)" == "jetclocks.ko" ]; then\
cd ./Jetclocks && make uninstall;\
fi
nano:
$(CC) $(CFLAGS) nano.c
$(CC) $(LDFLAGS) -o $(LIB) nano.o $(LIBS)
@echo nano > ./hardware
orin:
$(CC) $(CFLAGS) orin.c
$(CC) $(LDFLAGS) -o $(LIB) orin.o $(LIBS)
@echo orin > ./hardware
orinagx:
$(CC) $(CFLAGS) orinagx.c
$(CC) $(LDFLAGS) -o $(LIB) orinagx.o $(LIBS)
@echo orinagx > ./hardware
clean:
rm -f *.o $(LIB) get_chip_id hardware
install: step2 step4
uninstall: step5 step6