xref: /freebsd/lib/csu/Makefile.inc (revision 3a56015a2f5d630910177fa79a522bb95511ccf7)
1*3a56015aSIsaac FreundPACKAGE?=	clibs-dev
2042df2e2SRuslan Ermilov
37e659f94SEd SchoutenNO_WMISSING_VARIABLE_DECLARATIONS=
47bc797e3SAlex Richardson# Can't instrument these files since that breaks non-sanitized programs.
57bc797e3SAlex RichardsonMK_ASAN:=	no
67bc797e3SAlex RichardsonMK_UBSAN:=	no
77e659f94SEd Schouten
831d62a73SAndrew Turner.include <src.opts.mk>
961ed578eSMitchell HorneMK_SSP=	no
1031d62a73SAndrew Turner
1143e84039SEd Maste.if !defined(BUILDING_TESTS)
1231d62a73SAndrew Turner
13b0ee263dSJohn BaldwinOBJS+=	Scrt1.o crt1.o gcrt1.o
1431d62a73SAndrew TurnerOBJS+=	crtbegin.o crtbeginS.o crtbeginT.o
1531d62a73SAndrew TurnerOBJS+=	crtend.o crtendS.o
16b0ee263dSJohn BaldwinOBJS+=	crti.o crtn.o
17b0ee263dSJohn Baldwin
180bfad432SJohn BaldwinCRT1OBJS+=	crtbrand.o feature_note.o ignore_init_note.o
1931d62a73SAndrew Turner
2099282790SJohn BaldwinACFLAGS+=	-DLOCORE
2199282790SJohn Baldwin
22cb2d1350SEd MasteCFLAGS+=	-DSTRIP_FBSDID
2328845ae1SDimitry AndricCFLAGS+=	-fno-omit-frame-pointer
24b0ee263dSJohn BaldwinCFLAGS+=	-I${.CURDIR:H}/common \
25567d9fe8SStephen J. Kiernan		-I${SRCTOP}/lib/libc/include \
26567d9fe8SStephen J. Kiernan		-I${SRCTOP}/lib/libsys \
2728845ae1SDimitry Andric
2831d62a73SAndrew TurnerCFLAGS_CRTS=	-DSHARED ${PICFLAG}
2931d62a73SAndrew Turner
30b0ee263dSJohn BaldwinFILES=		${OBJS}
31b0ee263dSJohn BaldwinFILESMODE=	${LIBMODE}
32b0ee263dSJohn BaldwinFILESOWN=	${LIBOWN}
33b0ee263dSJohn BaldwinFILESGRP=	${LIBGRP}
34b0ee263dSJohn BaldwinFILESDIR=	${LIBDIR}
35b0ee263dSJohn Baldwin# These FILES qualify as libraries for the purpose of LIBRARIES_ONLY.
36b0ee263dSJohn Baldwin.undef LIBRARIES_ONLY
37b0ee263dSJohn Baldwin
38c969310cSDmitry ChaginCRT1SRC?=	crt1_c.c
39c969310cSDmitry ChaginCRT1OBJ?=
40b0ee263dSJohn Baldwin
41c969310cSDmitry ChaginCLEANFILES+=	${OBJS} ${CRT1OBJS} crt1_c.o gcrt1_c.o Scrt1_c.o
42c969310cSDmitry ChaginCLEANFILES+=	crti_s.o ${CRT1SRC:C/.[S|c]$/.o/}
43c969310cSDmitry Chagin
44c969310cSDmitry Chagincrt1.o:	${CRT1SRC:C/.[S|c]$/.o/} ${CRT1OBJS} ${CRT1OBJ}
45b0ee263dSJohn Baldwin	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
46b0ee263dSJohn Baldwin
47c969310cSDmitry Chagingcrt1_c.o: ${CRT1SRC}
48c969310cSDmitry Chagin	${CC} ${CFLAGS} -DGCRT -c -o ${.TARGET} ${.CURDIR}/${CRT1SRC}
49b0ee263dSJohn Baldwin
50c969310cSDmitry Chagingcrt1.o: gcrt1_c.o ${CRT1OBJS} ${CRT1OBJ}
51b0ee263dSJohn Baldwin	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
52b0ee263dSJohn Baldwin
53c969310cSDmitry ChaginScrt1_c.o: ${CRT1SRC}
54c969310cSDmitry Chagin	${CC} ${CFLAGS} -fPIC -DPIC -c -o ${.TARGET} ${.CURDIR}/${CRT1SRC}
55b0ee263dSJohn Baldwin
56c969310cSDmitry ChaginScrt1.o: Scrt1_c.o ${CRT1OBJS} ${CRT1OBJ}
57b0ee263dSJohn Baldwin	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
58b0ee263dSJohn Baldwin
59ed3563b0SEd Maste# __FreeBSD_version is recorded in crt1.o et al via crtbrand.
60ed3563b0SEd Mastecrtbrand.o: ${SRCTOP}/sys/sys/param.h
61ed3563b0SEd Maste
6231d62a73SAndrew Turnercrtbegin.o: crtbegin.c
6331d62a73SAndrew TurnercrtbeginS.o: crtbegin.c
6431d62a73SAndrew TurnercrtbeginT.o: crtbegin.c
6531d62a73SAndrew Turnercrtend.o: crtend.c
6631d62a73SAndrew TurnercrtendS.o: crtend.c
6731d62a73SAndrew Turner
6831d62a73SAndrew Turnercrtbegin.o crtend.o crtbeginT.o:
69dcf1f838SBryan Drewery	${CC} ${CFLAGS} -I${.CURDIR} -c -o ${.TARGET} ${.ALLSRC:N*.h:[1]}
7031d62a73SAndrew Turner
7131d62a73SAndrew TurnercrtbeginS.o crtendS.o:
72dcf1f838SBryan Drewery	${CC} ${CFLAGS} -I${.CURDIR} ${CFLAGS_CRTS} -c -o ${.TARGET} \
73dcf1f838SBryan Drewery	    ${.ALLSRC:N*.h:[1]}
7431d62a73SAndrew Turner
750bfad432SJohn Baldwincrti_s.o: crti.S
760bfad432SJohn Baldwin	${CC} ${CFLAGS} ${ACFLAGS} -c ${.ALLSRC:M*.S} -o ${.TARGET}
770bfad432SJohn Baldwin
780bfad432SJohn Baldwincrti.o: crti_s.o crtbrand.o
790bfad432SJohn Baldwin	${LD} ${_LDFLAGS} -o ${.TARGET} -r ${.ALLSRC:M*.o}
800bfad432SJohn Baldwin
8131d62a73SAndrew Turner.endif
8231d62a73SAndrew Turner
8303dab16eSUlrich Spörlein.include "../Makefile.inc"
84