1994-05-27 05:00:24 +00:00
|
|
|
# @(#)Makefile 8.2 (Berkeley) 2/3/94
|
1999-08-28 00:22:10 +00:00
|
|
|
# $FreeBSD$
|
2006-03-17 18:54:44 +00:00
|
|
|
|
2006-03-18 11:01:06 +00:00
|
|
|
SHLIBDIR?= /lib
|
|
|
|
|
2006-03-17 18:54:44 +00:00
|
|
|
.include <bsd.own.mk>
|
|
|
|
|
2010-08-24 20:54:43 +00:00
|
|
|
# We have to special case powerpc and powerpc64, since they mostly have
|
|
|
|
# the same source implementation. libc is very different due to large
|
|
|
|
# ABI differences.
|
2010-08-24 21:28:34 +00:00
|
|
|
.if ${MACHINE_ARCH} == "powerpc"
|
2010-08-24 20:54:43 +00:00
|
|
|
LIBC_ARCH=${MACHINE_ARCH}
|
|
|
|
.else
|
2010-08-24 21:28:34 +00:00
|
|
|
LIBC_ARCH=${MACHINE_CPUARCH}
|
2010-08-24 20:54:43 +00:00
|
|
|
.endif
|
|
|
|
|
2002-03-23 20:08:00 +00:00
|
|
|
# All library objects contain FreeBSD revision strings by default; they may be
|
1994-05-27 05:00:24 +00:00
|
|
|
# excluded as a space-saving measure. To produce a library that does
|
2002-03-26 23:08:42 +00:00
|
|
|
# not contain these strings, add -DSTRIP_FBSDID (see <sys/cdefs.h>) to CFLAGS
|
2003-12-11 09:53:25 +00:00
|
|
|
# below. Note: there are no IDs for syscall stubs whose sources are generated.
|
|
|
|
# To include legacy CSRG sccsid strings, add -DLIBC_SCCS and -DSYSLIBC_SCCS
|
|
|
|
# to CFLAGS below. -DSYSLIBC_SCCS affects just the system call stubs.
|
1994-05-27 05:00:24 +00:00
|
|
|
LIB=c
|
2006-05-21 15:15:21 +00:00
|
|
|
SHLIB_MAJOR= 7
|
2004-01-19 16:16:53 +00:00
|
|
|
WARNS?= 2
|
2003-07-01 15:07:01 +00:00
|
|
|
CFLAGS+=-I${.CURDIR}/include -I${.CURDIR}/../../include
|
2010-08-24 20:54:43 +00:00
|
|
|
CFLAGS+=-I${.CURDIR}/${LIBC_ARCH}
|
2009-03-13 10:40:38 +00:00
|
|
|
CFLAGS+=-DNLS
|
1994-05-27 05:00:24 +00:00
|
|
|
CLEANFILES+=tags
|
2004-10-24 15:33:08 +00:00
|
|
|
INSTALL_PIC_ARCHIVE=
|
|
|
|
PRECIOUSLIB=
|
1994-05-27 05:00:24 +00:00
|
|
|
|
2007-05-19 04:32:56 +00:00
|
|
|
#
|
|
|
|
# Only link with static libgcc.a (no libgcc_eh.a).
|
|
|
|
#
|
2007-10-01 18:15:11 +00:00
|
|
|
DPADD+= ${LIBGCC}
|
2007-05-19 16:38:39 +00:00
|
|
|
LDFLAGS+= -nodefaultlibs
|
2009-07-14 21:19:13 +00:00
|
|
|
LDADD+= -lgcc -lssp_nonshared
|
2007-05-19 04:32:56 +00:00
|
|
|
|
2002-11-18 09:50:57 +00:00
|
|
|
# Define (empty) variables so that make doesn't give substitution
|
|
|
|
# errors if the included makefiles don't change these:
|
|
|
|
MDSRCS=
|
|
|
|
MISRCS=
|
|
|
|
MDASM=
|
|
|
|
MIASM=
|
|
|
|
NOASM=
|
|
|
|
|
2010-08-24 20:54:43 +00:00
|
|
|
.include "${.CURDIR}/${LIBC_ARCH}/Makefile.inc"
|
2002-11-18 09:50:57 +00:00
|
|
|
.include "${.CURDIR}/db/Makefile.inc"
|
|
|
|
.include "${.CURDIR}/compat-43/Makefile.inc"
|
2003-03-13 18:55:14 +00:00
|
|
|
.include "${.CURDIR}/gdtoa/Makefile.inc"
|
2002-11-18 09:50:57 +00:00
|
|
|
.include "${.CURDIR}/gen/Makefile.inc"
|
|
|
|
.include "${.CURDIR}/gmon/Makefile.inc"
|
Update the resolver in libc to BIND9's one.
Since, res_sendsigned(3) and the friends use MD5 functions, it is
hard to include them without having MD5 functions in libc. So,
res_sendsigned(3) is not merged into libc.
Since, res_update(3) in BIND9 is not binary compatible with our
res_update(3), res_update(3) is leaved as is, except some
necessary modifications.
The res_update(3) and the friends are not essential part of the
resolver. They are not defined in resolv.h but defined in
res_update.h separately in BIND9. Further, they are not called from
our tree. So, I hide them from our resolv.h, but leave them only
for binary backward compatibility (perhaps, no one calls them).
Since, struct __res_state_ext is not exposed in BIND9, I hide it
from our resolv.h. And, global variable _res_ext is removed. It
breaks binary backward compatibility. But, since it is not used from
outside of our libc, I think it is safe.
Reviewed by: arch@ (no objection)
2006-03-21 16:11:11 +00:00
|
|
|
.include "${.CURDIR}/inet/Makefile.inc"
|
|
|
|
.include "${.CURDIR}/isc/Makefile.inc"
|
2002-11-18 09:50:57 +00:00
|
|
|
.include "${.CURDIR}/locale/Makefile.inc"
|
Update the resolver in libc to BIND9's one.
Since, res_sendsigned(3) and the friends use MD5 functions, it is
hard to include them without having MD5 functions in libc. So,
res_sendsigned(3) is not merged into libc.
Since, res_update(3) in BIND9 is not binary compatible with our
res_update(3), res_update(3) is leaved as is, except some
necessary modifications.
The res_update(3) and the friends are not essential part of the
resolver. They are not defined in resolv.h but defined in
res_update.h separately in BIND9. Further, they are not called from
our tree. So, I hide them from our resolv.h, but leave them only
for binary backward compatibility (perhaps, no one calls them).
Since, struct __res_state_ext is not exposed in BIND9, I hide it
from our resolv.h. And, global variable _res_ext is removed. It
breaks binary backward compatibility. But, since it is not used from
outside of our libc, I think it is safe.
Reviewed by: arch@ (no objection)
2006-03-21 16:11:11 +00:00
|
|
|
.include "${.CURDIR}/nameser/Makefile.inc"
|
2002-11-18 09:50:57 +00:00
|
|
|
.include "${.CURDIR}/net/Makefile.inc"
|
|
|
|
.include "${.CURDIR}/nls/Makefile.inc"
|
|
|
|
.include "${.CURDIR}/posix1e/Makefile.inc"
|
2010-08-24 20:54:43 +00:00
|
|
|
.if ${LIBC_ARCH} != "amd64" && \
|
|
|
|
${LIBC_ARCH} != "ia64" && \
|
|
|
|
${LIBC_ARCH} != "powerpc64" && \
|
|
|
|
${LIBC_ARCH} != "sparc64" && \
|
|
|
|
${LIBC_ARCH} != "mips"
|
2010-06-16 14:13:36 +00:00
|
|
|
.include "${.CURDIR}/quad/Makefile.inc"
|
|
|
|
.endif
|
2010-08-24 20:54:43 +00:00
|
|
|
.if ${LIBC_ARCH} == "mips" && \
|
2010-06-16 14:13:36 +00:00
|
|
|
(!defined(TARGET_ABI) || ${TARGET_ABI} == "o32")
|
2002-11-18 09:50:57 +00:00
|
|
|
.include "${.CURDIR}/quad/Makefile.inc"
|
|
|
|
.endif
|
|
|
|
.include "${.CURDIR}/regex/Makefile.inc"
|
Update the resolver in libc to BIND9's one.
Since, res_sendsigned(3) and the friends use MD5 functions, it is
hard to include them without having MD5 functions in libc. So,
res_sendsigned(3) is not merged into libc.
Since, res_update(3) in BIND9 is not binary compatible with our
res_update(3), res_update(3) is leaved as is, except some
necessary modifications.
The res_update(3) and the friends are not essential part of the
resolver. They are not defined in resolv.h but defined in
res_update.h separately in BIND9. Further, they are not called from
our tree. So, I hide them from our resolv.h, but leave them only
for binary backward compatibility (perhaps, no one calls them).
Since, struct __res_state_ext is not exposed in BIND9, I hide it
from our resolv.h. And, global variable _res_ext is removed. It
breaks binary backward compatibility. But, since it is not used from
outside of our libc, I think it is safe.
Reviewed by: arch@ (no objection)
2006-03-21 16:11:11 +00:00
|
|
|
.include "${.CURDIR}/resolv/Makefile.inc"
|
2002-11-18 09:50:57 +00:00
|
|
|
.include "${.CURDIR}/stdio/Makefile.inc"
|
|
|
|
.include "${.CURDIR}/stdlib/Makefile.inc"
|
|
|
|
.include "${.CURDIR}/stdtime/Makefile.inc"
|
|
|
|
.include "${.CURDIR}/string/Makefile.inc"
|
|
|
|
.include "${.CURDIR}/sys/Makefile.inc"
|
|
|
|
.include "${.CURDIR}/rpc/Makefile.inc"
|
|
|
|
.include "${.CURDIR}/uuid/Makefile.inc"
|
|
|
|
.include "${.CURDIR}/xdr/Makefile.inc"
|
2010-08-24 20:54:43 +00:00
|
|
|
.if ${LIBC_ARCH} == "arm" || ${LIBC_ARCH} == "mips"
|
2004-05-14 12:04:31 +00:00
|
|
|
.include "${.CURDIR}/softfloat/Makefile.inc"
|
|
|
|
.endif
|
2006-03-17 18:54:44 +00:00
|
|
|
.if ${MK_NIS} != "no"
|
2002-11-18 09:50:57 +00:00
|
|
|
CFLAGS+= -DYP
|
|
|
|
.include "${.CURDIR}/yp/Makefile.inc"
|
|
|
|
.endif
|
2006-03-17 18:54:44 +00:00
|
|
|
.if ${MK_HESIOD} != "no"
|
2002-11-18 09:50:57 +00:00
|
|
|
CFLAGS+= -DHESIOD
|
|
|
|
.endif
|
2006-03-17 18:54:44 +00:00
|
|
|
.if ${MK_FP_LIBC} == "no"
|
2004-05-02 10:55:07 +00:00
|
|
|
CFLAGS+= -DNO_FLOATING_POINT
|
|
|
|
.endif
|
2006-04-28 12:03:38 +00:00
|
|
|
.if ${MK_NS_CACHING} != "no"
|
|
|
|
CFLAGS+= -DNS_CACHING
|
|
|
|
.endif
|
2007-03-04 12:25:03 +00:00
|
|
|
.if defined(_FREEFALL_CONFIG)
|
|
|
|
CFLAGS+=-D_FREEFALL_CONFIG
|
|
|
|
.endif
|
2002-11-18 09:50:57 +00:00
|
|
|
|
2006-03-16 15:16:23 +00:00
|
|
|
VERSION_DEF=${.CURDIR}/Versions.def
|
|
|
|
SYMBOL_MAPS=${SYM_MAPS}
|
|
|
|
CFLAGS+= -DSYMBOL_VERSIONING
|
|
|
|
|
2002-11-18 09:50:57 +00:00
|
|
|
# If there are no machine dependent sources, append all the
|
|
|
|
# machine-independent sources:
|
|
|
|
.if empty(MDSRCS)
|
|
|
|
SRCS+= ${MISRCS}
|
|
|
|
.else
|
|
|
|
# Append machine-dependent sources, then append machine-independent sources
|
|
|
|
# for which there is no machine-dependent variant.
|
|
|
|
SRCS+= ${MDSRCS}
|
|
|
|
.for _src in ${MISRCS}
|
|
|
|
.if ${MDSRCS:R:M${_src:R}} == ""
|
|
|
|
SRCS+= ${_src}
|
|
|
|
.endif
|
|
|
|
.endfor
|
|
|
|
.endif
|
1994-05-27 05:00:24 +00:00
|
|
|
|
|
|
|
KQSRCS= adddi3.c anddi3.c ashldi3.c ashrdi3.c cmpdi2.c divdi3.c iordi3.c \
|
|
|
|
lshldi3.c lshrdi3.c moddi3.c muldi3.c negdi2.c notdi2.c qdivrem.c \
|
|
|
|
subdi3.c ucmpdi2.c udivdi3.c umoddi3.c xordi3.c
|
2004-01-13 16:05:47 +00:00
|
|
|
KSRCS= bcmp.c ffs.c ffsl.c fls.c flsl.c index.c mcount.c rindex.c \
|
|
|
|
strcat.c strcmp.c strcpy.c strlen.c strncpy.c
|
1994-05-27 05:00:24 +00:00
|
|
|
|
2010-08-24 20:54:43 +00:00
|
|
|
libkern: libkern.gen libkern.${LIBC_ARCH}
|
1994-05-27 05:00:24 +00:00
|
|
|
|
|
|
|
libkern.gen: ${KQSRCS} ${KSRCS}
|
1997-05-23 08:24:00 +00:00
|
|
|
cp -p ${.CURDIR}/quad/quad.h ${.ALLSRC} ${DESTDIR}/sys/libkern
|
1994-05-27 05:00:24 +00:00
|
|
|
|
2010-08-24 20:54:43 +00:00
|
|
|
libkern.${LIBC_ARCH}:: ${KMSRCS}
|
1994-05-27 05:00:24 +00:00
|
|
|
.if defined(KMSRCS) && !empty(KMSRCS)
|
2010-08-24 20:54:43 +00:00
|
|
|
cp -p ${.ALLSRC} ${DESTDIR}/sys/libkern/${LIBC_ARCH}
|
1994-05-27 05:00:24 +00:00
|
|
|
.endif
|
2010-08-23 15:18:35 +00:00
|
|
|
|
1994-05-27 05:00:24 +00:00
|
|
|
.include <bsd.lib.mk>
|
2004-01-11 10:42:47 +00:00
|
|
|
|
|
|
|
# Disable warnings in contributed sources.
|
2010-08-01 12:35:01 +00:00
|
|
|
CWARNFLAGS:= ${.IMPSRC:Ngdtoa_*.c:C/^.+$/${CWARNFLAGS}/:C/^$/-w/}
|
2008-06-25 21:33:28 +00:00
|
|
|
# XXX For now, we don't allow libc to be compiled with
|
|
|
|
# -fstack-protector-all because it breaks rtld. We may want to make a librtld
|
|
|
|
# in the future to circumvent this.
|
|
|
|
SSP_CFLAGS:= ${SSP_CFLAGS:S/^-fstack-protector-all$/-fstack-protector/}
|
|
|
|
# Disable stack protection for SSP symbols.
|
|
|
|
SSP_CFLAGS:= ${.IMPSRC:N*/stack_protector.c:C/^.+$/${SSP_CFLAGS}/}
|