xref: /freebsd-13-stable/share/mk/bsd.suffixes-extra.mk (revision 061ce1c392f0223c6ff6578c9649e79da89f9796)
1.if !target(__<bsd.suffixes-extra.mk>__)
2__<bsd.suffixes-extra.mk>__:	.NOTMAIN
3
4# prefer .s to a .c, add .po, remove stuff not used in the BSD libraries
5# .pico used for PIC object files
6# .nossppico used for NOSSP PIC object files
7# .pieo used for PIE object files
8.SUFFIXES: .out .o .bc .ll .po .pico .nossppico .pieo .S .asm .s .c .cc .cpp .cxx .C .f .y .l .ln
9
10.if !defined(PICFLAG)
11PICFLAG=-fpic
12PIEFLAG=-fpie
13.endif
14
15PO_FLAG=-pg
16
17.c.po:
18	${CC} ${PO_FLAG} ${STATIC_CFLAGS} ${PO_CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
19	${CTFCONVERT_CMD}
20
21.c.pico:
22	${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
23	${CTFCONVERT_CMD}
24
25.c.nossppico:
26	${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS:C/^-fstack-protector.*$//} ${CFLAGS:C/^-fstack-protector.*$//} -c ${.IMPSRC} -o ${.TARGET}
27	${CTFCONVERT_CMD}
28
29.c.pieo:
30	${CC} ${PIEFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
31	${CTFCONVERT_CMD}
32
33.cc.po .C.po .cpp.po .cxx.po:
34	${CXX} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
35
36.cc.pico .C.pico .cpp.pico .cxx.pico:
37	${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
38
39.cc.nossppico .C.nossppico .cpp.nossppico .cxx.nossppico:
40	${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS:C/^-fstack-protector.*$//} ${CXXFLAGS:C/^-fstack-protector.*$//} -c ${.IMPSRC} -o ${.TARGET}
41
42.cc.pieo .C.pieo .cpp.pieo .cxx.pieo:
43	${CXX} ${PIEFLAG} ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
44
45.f.po:
46	${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC}
47	${CTFCONVERT_CMD}
48
49.f.pico:
50	${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC}
51	${CTFCONVERT_CMD}
52
53.f.nossppico:
54	${FC} ${PICFLAG} -DPIC ${FFLAGS:C/^-fstack-protector.*$//} -o ${.TARGET} -c ${.IMPSRC}
55	${CTFCONVERT_CMD}
56
57.s.po .s.pico .s.nossppico .s.pieo:
58	${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC}
59	${CTFCONVERT_CMD}
60
61.asm.po:
62	${CC:N${CCACHE_BIN}} -x assembler-with-cpp -DPROF ${PO_CFLAGS} \
63	    ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET}
64	${CTFCONVERT_CMD}
65
66.asm.pico:
67	${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \
68	    ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET}
69	${CTFCONVERT_CMD}
70
71.asm.nossppico:
72	${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \
73	    ${CFLAGS:C/^-fstack-protector.*$//} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET}
74	${CTFCONVERT_CMD}
75
76.asm.pieo:
77	${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PIEFLAG} -DPIC \
78	    ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET}
79	${CTFCONVERT_CMD}
80
81.S.po:
82	${CC:N${CCACHE_BIN}} -DPROF ${PO_CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \
83	    -o ${.TARGET}
84	${CTFCONVERT_CMD}
85
86.S.pico:
87	${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS} ${ACFLAGS} \
88	    -c ${.IMPSRC} -o ${.TARGET}
89	${CTFCONVERT_CMD}
90
91.S.nossppico:
92	${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS:C/^-fstack-protector.*$//} ${ACFLAGS} \
93	    -c ${.IMPSRC} -o ${.TARGET}
94	${CTFCONVERT_CMD}
95
96.S.pieo:
97	${CC:N${CCACHE_BIN}} ${PIEFLAG} -DPIC ${CFLAGS} ${ACFLAGS} \
98	    -c ${.IMPSRC} -o ${.TARGET}
99	${CTFCONVERT_CMD}
100
101.endif	# !target(__<bsd.suffixes-extra.mk>__)
102