xref: /netbsd-src/sys/conf/assym.mk (revision 6dafc627f23cd20ca7d1fd78bcc07c01af06c0b5)
1# $NetBSD: assym.mk,v 1.8 2022/11/19 07:54:25 yamt Exp $
2
3GENASSYM_FLAGS=${CFLAGS:N-Wa,*:N-fstack-usage*} ${CPPFLAGS} ${GENASSYM_CPPFLAGS}
4
5assym.h: ${GENASSYM_CONF} ${GENASSYM_EXTRAS} $S/conf/genassym.cf
6	${_MKTARGET_CREATE}
7	cat ${GENASSYM_CONF} ${GENASSYM_EXTRAS} $S/conf/genassym.cf | \
8	    ${GENASSYM} -- ${CC} ${GENASSYM_FLAGS} ${PROF} > assym.h.tmp && \
9	mv -f assym.h.tmp assym.h
10
11.if !defined(___USE_SUFFIX_RULES___)
12${SRCS:T:M*.[sS]:C|\.[Ss]|.o|}: assym.h
13${SRCS:T:M*.[sS]:C|\.[Ss]|.d|}: assym.h
14.else
15${SRCS:M*.[sS]:C|\.[Ss]|.o|}: assym.h
16${SRCS:M*.[sS]:C|\.[Ss]|.d|}: assym.h
17.endif
18
19# assym.dep in the below target looks like:
20#
21#   assym.o: \
22#    /var/folders/74/hw1sphgx0lv63q6pq_n5grw00000gn/T//genassym.BCtq6a/assym.c \
23#    opt_arm_start.h opt_execfmt.h opt_multiprocessor.h \
24#      :
25#      :
26#
27# The following sed modifies it to:
28#
29#   assym.h: \
30#    opt_arm_start.h opt_execfmt.h opt_multiprocessor.h \
31#      :
32#      :
33
34assym.d: assym.h
35	${_MKTARGET_CREATE}
36	cat ${GENASSYM_CONF} ${GENASSYM_EXTRAS} | \
37	    ${GENASSYM} -- ${MKDEP} -f assym.dep -- ${GENASSYM_FLAGS}
38	${TOOL_SED} -e '1{N;s/\\\n//;}' -e 's/.*\.o:.*\.c/assym.h:/' < assym.dep >${.TARGET}
39	rm -f assym.dep
40
41DEPS+=	assym.d
42
43.if defined(___USE_SUFFIX_RULES___)
44.SUFFIXES: .genassym .assym.h
45.genassym.assym.h:
46	${_MKTARGET_CREATE}
47	${GENASSYM} -- ${CC} ${GENASSYM_FLAGS} ${PROF} < $< > $@
48	mv -f $@.tmp $@
49.endif # ___USE_SUFFIX_RULES___
50