-
Notifications
You must be signed in to change notification settings - Fork 183
/
makefile.s2core
124 lines (97 loc) · 3.88 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# --- Revised 3-Clause BSD License ---
# Copyright Semtech Corporation 2022. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of the Semtech corporation nor the names of its
# contributors may be used to endorse or promote products derived from this
# software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION. BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
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} ${FILES:=.crc.o}
DEPS=${SRCS:.c=.d}
all: ${TARGET}
../bin/station: station_main.c ../lib/libs2core.a $(wildcard ../lib/*.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" >> $@
# Linking crcs (*.crc)
%.crc.o: %.crc
@echo " [${ARCH}] OC $@ " ${NQ}
${Q} ${OC} ${OCFLAGS} ${<F} $@
%.crc: %
@echo " [${ARCH}] CRC $@ " ${NQ}
${Q} ${TD}/build-local/bin/crc32 - < $< | xxd -r | xxd -e | xxd -r > $@
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}