forked from lorabasics/basicstation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile.s2core
91 lines (66 loc) · 2.08 KB
/
makefile.s2core
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
# -*- makefile -*-
TD=../..
include ${TD}/setup.gmk
TARGET.default = ../bin/station
TARGET = $(or ${TARGET.${platform}}, ${TARGET.default})
VPATH+=${TD}/src $(patsubst %/, %, $(filter %/, $(wildcard ${TD}/src/*/))) $(patsubst %,${TD}/%,${SD}) .
SRCS = $(notdir $(wildcard ${VPATH:%=%/*.c}))
ASRCS = $(notdir $(wildcard ${VPATH:%=%/*.S}))
OBJS=${SRCS:.c=.o} ${ASRCS:.S=.s.o} ${FILES:=.o}
DEPS=${SRCS:.c=.d}
all: ${TARGET}
../bin/station: station_main.c ../lib/libs2core.a
@echo " [${ARCH}] CC $@" ${NQ}
${Q}${CC} ${CFLAGS} ${LDFLAGS} $^ ${LIBS} -o $@
@echo " platform=${platform} variant=${variant} STATION EXE built"
../lib/libs2core.a: ${PERSOH} ${OBJS}
@echo " [${ARCH}] AR $@" ${NQ}
${Q}${AR} cr $@ $^
perso.h: $(patsubst %.asc, %,${PERSO})
@echo " [${ARCH}] CP $@ <- $^" ${NQ}
@touch $@
${Q}cp $< $@
%.h: %.h.asc
@echo " [${ARCH}] GPG $@ <- $^" ${NQ}
${Q}gpg --decrypt --output $@ $<
%.d: %.c
@echo " [${ARCH}] D $@" ${NQ}
${Q}${CC} -E -MMD -MP -MT "$@ ${@:.d=.o}" ${CFLAGS} $< >/dev/null
%.o: %.c
@echo " [${ARCH}] CC $@" ${NQ}
${Q}${CC} ${CFLAGS} -c $< -o $@
%.s.o: %.S
@echo " [${ARCH}] CC $@" ${NQ}
${Q}${CC} ${CFLAGS} -c $< -o $@
%.bin.o: %.bin
@echo " [${ARCH}] OC $@ " ${NQ}
${Q} ${OC} ${OCFLAGS} ${<F} $@
%.bin: %
${Q} cp $< $@
%.gz.bin: %
@echo " [${ARCH}] GZIP $@ " ${NQ}
${Q} gzip $< -c > $@
%.crt.bin: %.crt
@echo " [${ARCH}] OSSL $@ " ${NQ}
${Q} openssl x509 $1 -in $< -outform DER -out $@
%.key.bin: %.key
@echo " [${ARCH}] OSSL $@ " ${NQ}
${Q} openssl rsa $1 -in $< -outform DER -out $@ 2>/dev/null
%.prime256v1.pub.bin: %.prime256v1.pub
@echo " [${ARCH}] OSSL $@ " ${NQ}
${Q} openssl ec -in $< -pubin -outform der 2>/dev/null | tail -c 64 1> $@
# Linking strings (*.str)
%.str.o: %.str
@echo " [${ARCH}] OC $@ " ${NQ}
${Q} ${OC} ${OCFLAGS} ${<F} $@
%.str: %
@echo " [${ARCH}] STR $@ " ${NQ}
${Q} cp $< $@ ; printf "\0" >> $@
clean super-clean:
rm -rf *.o *.d *.gcno ../lib/libs2core.a
rm -f ${TARGET}
rm -f ${PERSOH}
.PHONY: all clean super-clean
.INTERMEDIATE: $(patsubst %.asc, %,${PERSO})
# ${DEPS}: perso.h
# -include ${DEPS}