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