xref: /freebsd/lib/libsys/Makefile (revision e9d961055aa2502f4915611e8fb2e9f9f9c86719)
1*e9d96105SBrooks DavisPACKAGE=	clibs
2*e9d96105SBrooks DavisSHLIBDIR?= /lib
3*e9d96105SBrooks Davis
4*e9d96105SBrooks Davis.include <src.opts.mk>
5*e9d96105SBrooks Davis
6*e9d96105SBrooks DavisLIBC_SRCTOP?= ${.CURDIR}/../libc
7*e9d96105SBrooks DavisLIBSYS_SRCTOP?=	${.CURDIR}
8*e9d96105SBrooks Davis
9*e9d96105SBrooks Davis# Pick the current architecture directory for libsys. In general, this is named
10*e9d96105SBrooks Davis# MACHINE_CPUARCH, but some ABIs are different enough to require their own
11*e9d96105SBrooks Davis# libsys, so allow a directory named MACHINE_ARCH to override this (though
12*e9d96105SBrooks Davis# treat powerpc64le and powerpc64 the same).
13*e9d96105SBrooks Davis# Note: This is copied from libc/Makefile
14*e9d96105SBrooks DavisM=${MACHINE_ARCH:S/powerpc64le/powerpc64/}
15*e9d96105SBrooks Davis.if exists(${LIBC_SRCTOP}/${M})
16*e9d96105SBrooks DavisLIBC_ARCH=${M}
17*e9d96105SBrooks Davis.else
18*e9d96105SBrooks DavisLIBC_ARCH=${MACHINE_CPUARCH}
19*e9d96105SBrooks Davis.endif
20*e9d96105SBrooks Davis
21*e9d96105SBrooks DavisLIB=sys
22*e9d96105SBrooks DavisSHLIB_MAJOR= 7
23*e9d96105SBrooks DavisWARNS?=	2
24*e9d96105SBrooks Davis
25*e9d96105SBrooks DavisCFLAGS+=-I${LIBSYS_SRCTOP}/include -I${LIBC_SRCTOP}/include
26*e9d96105SBrooks DavisCFLAGS+=-I${LIBSYS_SRCTOP}/${LIBC_ARCH}
27*e9d96105SBrooks DavisCFLAGS+=-I${LIBC_SRCTOP}/${LIBC_ARCH}
28*e9d96105SBrooks Davis
29*e9d96105SBrooks DavisCLEANFILES+=tags
30*e9d96105SBrooks DavisINSTALL_PIC_ARCHIVE=
31*e9d96105SBrooks Davis#XXX? BUILD_NOSSP_PIC_ARCHIVE=
32*e9d96105SBrooks DavisPRECIOUSLIB=
33*e9d96105SBrooks Davis
34*e9d96105SBrooks Davis# Use a more efficient TLS model for libc since we can reasonably assume that
35*e9d96105SBrooks Davis# it will be loaded during program startup.
36*e9d96105SBrooks DavisCFLAGS+= -ftls-model=initial-exec
37*e9d96105SBrooks Davis
38*e9d96105SBrooks Davis#
39*e9d96105SBrooks Davis# Link with static libcompiler_rt.a.
40*e9d96105SBrooks Davis#
41*e9d96105SBrooks DavisLDFLAGS+= -nodefaultlibs
42*e9d96105SBrooks DavisLIBADD+=	compiler_rt
43*e9d96105SBrooks Davis
44*e9d96105SBrooks Davis.if ${MK_SSP} != "no" && \
45*e9d96105SBrooks Davis    (${LIBC_ARCH} == "i386" || ${LIBC_ARCH:Mpowerpc*} != "")
46*e9d96105SBrooks DavisLIBADD+=        ssp_nonshared
47*e9d96105SBrooks Davis.endif
48*e9d96105SBrooks Davis
49*e9d96105SBrooks Davis#.if ${MK_SSP} != "no" && \
50*e9d96105SBrooks Davis#    (${LIBC_ARCH} == "i386" || ${LIBC_ARCH:Mpowerpc*} != "")
51*e9d96105SBrooks Davis#LIBADD+=	ssp_nonshared
52*e9d96105SBrooks Davis#.endif
53*e9d96105SBrooks Davis
54*e9d96105SBrooks Davis# Define (empty) variables so that make doesn't give substitution
55*e9d96105SBrooks Davis# errors if the included makefiles don't change these:
56*e9d96105SBrooks DavisMDASM=
57*e9d96105SBrooks DavisMIASM=
58*e9d96105SBrooks DavisNOASM=
59*e9d96105SBrooks Davis
60*e9d96105SBrooks Davis.include "${LIBSYS_SRCTOP}/Makefile.sys"
61*e9d96105SBrooks Davis
62*e9d96105SBrooks DavisVERSION_DEF=${LIBC_SRCTOP}/Versions.def
63*e9d96105SBrooks DavisSYMBOL_MAPS=${SYM_MAPS}
64*e9d96105SBrooks Davis
65*e9d96105SBrooks Davis# XXX: let libc install the manpages for now
66*e9d96105SBrooks DavisMAN=
67*e9d96105SBrooks DavisMLINKS=
68*e9d96105SBrooks Davis
69*e9d96105SBrooks Davis# XXX: move sys tests?
70*e9d96105SBrooks Davis#HAS_TESTS=
71*e9d96105SBrooks Davis#SUBDIR.${MK_TESTS}+= tests
72*e9d96105SBrooks Davis
73*e9d96105SBrooks Davis.include <bsd.lib.mk>
74