xref: /freebsd/lib/csu/Makefile.inc (revision 5ca8e32633c4ffbbcd6762e5888b6a4ba0708c6c)
1PACKAGE=	clibs-dev
2
3NO_WMISSING_VARIABLE_DECLARATIONS=
4# Can't instrument these files since that breaks non-sanitized programs.
5MK_ASAN:=	no
6MK_UBSAN:=	no
7
8.include <src.opts.mk>
9MK_SSP=	no
10
11.if !defined(BUILDING_TESTS)
12
13OBJS+=	Scrt1.o crt1.o gcrt1.o
14OBJS+=	crtbegin.o crtbeginS.o crtbeginT.o
15OBJS+=	crtend.o crtendS.o
16OBJS+=	crti.o crtn.o
17
18CRT1OBJS+=	crtbrand.o feature_note.o ignore_init_note.o
19
20ACFLAGS+=	-DLOCORE
21
22CFLAGS+=	-DSTRIP_FBSDID
23CFLAGS+=	-fno-omit-frame-pointer
24CFLAGS+=	-I${.CURDIR:H}/common \
25		-I${SRCTOP}/lib/libc/include
26
27CFLAGS_CRTS=	-DSHARED ${PICFLAG}
28
29FILES=		${OBJS}
30FILESMODE=	${LIBMODE}
31FILESOWN=	${LIBOWN}
32FILESGRP=	${LIBGRP}
33FILESDIR=	${LIBDIR}
34# These FILES qualify as libraries for the purpose of LIBRARIES_ONLY.
35.undef LIBRARIES_ONLY
36
37CRT1SRC?=	crt1_c.c
38CRT1OBJ?=
39
40CLEANFILES+=	${OBJS} ${CRT1OBJS} crt1_c.o gcrt1_c.o Scrt1_c.o
41CLEANFILES+=	crti_s.o ${CRT1SRC:C/.[S|c]$/.o/}
42
43crt1.o:	${CRT1SRC:C/.[S|c]$/.o/} ${CRT1OBJS} ${CRT1OBJ}
44	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
45
46gcrt1_c.o: ${CRT1SRC}
47	${CC} ${CFLAGS} -DGCRT -c -o ${.TARGET} ${.CURDIR}/${CRT1SRC}
48
49gcrt1.o: gcrt1_c.o ${CRT1OBJS} ${CRT1OBJ}
50	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
51
52Scrt1_c.o: ${CRT1SRC}
53	${CC} ${CFLAGS} -fPIC -DPIC -c -o ${.TARGET} ${.CURDIR}/${CRT1SRC}
54
55Scrt1.o: Scrt1_c.o ${CRT1OBJS} ${CRT1OBJ}
56	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
57
58# __FreeBSD_version is recorded in crt1.o et al via crtbrand.
59crtbrand.o: ${SRCTOP}/sys/sys/param.h
60
61crtbegin.o: crtbegin.c
62crtbeginS.o: crtbegin.c
63crtbeginT.o: crtbegin.c
64crtend.o: crtend.c
65crtendS.o: crtend.c
66
67crtbegin.o crtend.o crtbeginT.o:
68	${CC} ${CFLAGS} -I${.CURDIR} -c -o ${.TARGET} ${.ALLSRC:N*.h:[1]}
69
70crtbeginS.o crtendS.o:
71	${CC} ${CFLAGS} -I${.CURDIR} ${CFLAGS_CRTS} -c -o ${.TARGET} \
72	    ${.ALLSRC:N*.h:[1]}
73
74crti_s.o: crti.S
75	${CC} ${CFLAGS} ${ACFLAGS} -c ${.ALLSRC:M*.S} -o ${.TARGET}
76
77crti.o: crti_s.o crtbrand.o
78	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
79
80.endif
81
82.include "../Makefile.inc"
83