Merge from head
This commit is contained in:
commit
b17ff922d4
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/projects/bmake/; revision=283591
@ -12,6 +12,7 @@ FILES= \
|
||||
bsd.crunchgen.mk \
|
||||
bsd.dep.mk \
|
||||
bsd.doc.mk \
|
||||
bsd.dtb.mk \
|
||||
bsd.endian.mk \
|
||||
bsd.files.mk \
|
||||
bsd.incs.mk \
|
||||
|
@ -72,11 +72,10 @@ MAN.${_T}?= # empty
|
||||
SRCS.${_T}?= ${_T}.c
|
||||
DPADD.${_T}+= ${LIBATF_C}
|
||||
.if empty(LDFLAGS:M-static) && empty(LDFLAGS.${_T}:M-static)
|
||||
LDADD.${_T}+= ${LDATF_C}
|
||||
LDADD.${_T}+= ${LDADD_atf_c}
|
||||
.else
|
||||
LDADD.${_T}+= ${LIBATF_C}
|
||||
.endif
|
||||
USEPRIVATELIB+= atf-c
|
||||
TEST_INTERFACE.${_T}= atf
|
||||
.endfor
|
||||
.endif
|
||||
@ -90,11 +89,10 @@ MAN.${_T}?= # empty
|
||||
SRCS.${_T}?= ${_T}${CXX_SUFFIX:U.cc}
|
||||
DPADD.${_T}+= ${LIBATF_CXX} ${LIBATF_C}
|
||||
.if empty(LDFLAGS:M-static) && empty(LDFLAGS.${_T}:M-static)
|
||||
LDADD.${_T}+= ${LDATF_CXX} ${LDATF_C}
|
||||
LDADD.${_T}+= ${LDADD_atf_cxx} ${LDADD_atf_c}
|
||||
.else
|
||||
LDADD.${_T}+= ${LIBATF_CXX} ${LIBATF_C}
|
||||
.endif
|
||||
USEPRIVATELIB+= atf-c++
|
||||
TEST_INTERFACE.${_T}= atf
|
||||
.endfor
|
||||
.endif
|
||||
|
@ -146,7 +146,7 @@ MAN The manual pages to be installed (use a .1 - .9 suffix).
|
||||
|
||||
MLINKS List of manual page links (using a .1 - .9 suffix). The
|
||||
linked-to file must come first, the linked file second,
|
||||
and there may be multiple pairs. The files are soft-linked.
|
||||
and there may be multiple pairs. The files are hard-linked.
|
||||
|
||||
The include file <bsd.man.mk> includes a file named "../Makefile.inc" if
|
||||
it exists.
|
||||
@ -336,6 +336,13 @@ with the current needs of the BSD tree.
|
||||
|
||||
It sets/uses the following variables:
|
||||
|
||||
LIB The name of the library to build.
|
||||
|
||||
LIB_CXX The name of the library to build. It also causes
|
||||
<bsd.lib.mk> to link the library with the
|
||||
standard C++ library. LIB_CXX overrides the value
|
||||
of LIB if LIB is also set.
|
||||
|
||||
LIBDIR Target directory for libraries.
|
||||
|
||||
LINTLIBDIR Target directory for lint libraries.
|
||||
|
@ -2,18 +2,22 @@
|
||||
|
||||
# Setup variables for the compiler
|
||||
#
|
||||
# COMPILTER_TYPE is the major type of compiler. Currently gcc and clang support
|
||||
# automatic detetion. Other compiler types can be shoe-horned in, but require explicit
|
||||
# setting of the compiler type. The compiler type can also be set explicitly if, say,
|
||||
# you install gcc as clang...
|
||||
# COMPILER_TYPE is the major type of compiler. Currently gcc and clang support
|
||||
# automatic detection. Other compiler types can be shoe-horned in, but require
|
||||
# explicit setting of the compiler type. The compiler type can also be set
|
||||
# explicitly if, say, you install gcc as clang...
|
||||
#
|
||||
# COMPILER_VERSION is a numeric constant equal to major * 10000 + minor * 100 + tiny. It
|
||||
# too can be overriden on the command line. When testing it, be sure to make sure that you
|
||||
# are limiting the test to a specific compiler. Testing against 30300 for gcc likely isn't
|
||||
# what you wanted (since versions of gcc prior to 4.2 likely have no prayer of working).
|
||||
# COMPILER_VERSION is a numeric constant equal to:
|
||||
# major * 10000 + minor * 100 + tiny
|
||||
# It too can be overriden on the command line. When testing it, be sure to
|
||||
# make sure that you are limiting the test to a specific compiler. Testing
|
||||
# against 30300 for gcc likely isn't what you wanted (since versions of gcc
|
||||
# prior to 4.2 likely have no prayer of working).
|
||||
#
|
||||
# COMPILER_FEATURES will contain one or more of the following, based on compiler support
|
||||
# for that feature: c++11 (supports full (or nearly full) C++11 programming environment).
|
||||
# COMPILER_FEATURES will contain one or more of the following, based on
|
||||
# compiler support for that feature:
|
||||
#
|
||||
# - c++11 : supports full (or nearly full) C++11 programming environment.
|
||||
#
|
||||
# This file may be included multiple times, but only has effect the first time.
|
||||
#
|
||||
@ -24,9 +28,8 @@ __<bsd.compiler.mk>__:
|
||||
.if ${MACHINE} == "common"
|
||||
COMPILER_TYPE= none
|
||||
COMPILER_VERSION= 0
|
||||
.else
|
||||
.elif !defined(COMPILER_TYPE) || !defined(COMPILER_VERSION)
|
||||
_v!= ${CC} --version 2>/dev/null || echo 0.0.0
|
||||
.endif
|
||||
|
||||
.if !defined(COMPILER_TYPE)
|
||||
. if ${CC:T:M*gcc*}
|
||||
@ -47,6 +50,7 @@ COMPILER_TYPE:= clang
|
||||
COMPILER_VERSION!=echo ${_v:M[1-9].[0-9]*} | awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}'
|
||||
.endif
|
||||
.undef _v
|
||||
.endif
|
||||
|
||||
.if ${COMPILER_TYPE} == "clang" || \
|
||||
(${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 40800)
|
||||
|
@ -24,41 +24,50 @@ MACHINE_CPU = mips
|
||||
# Handle aliases (not documented in make.conf to avoid user confusion
|
||||
# between e.g. i586 and pentium)
|
||||
|
||||
. if ${MACHINE_CPUARCH} == "i386"
|
||||
. if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
|
||||
. if ${CPUTYPE} == "barcelona"
|
||||
CPUTYPE = amdfam10
|
||||
. elif ${CPUTYPE} == "k7"
|
||||
CPUTYPE = athlon
|
||||
. elif ${CPUTYPE} == "westmere" || ${CPUTYPE} == "nehalem"
|
||||
CPUTYPE = corei7
|
||||
. elif ${CPUTYPE} == "core-avx2"
|
||||
CPUTYPE = haswell
|
||||
. elif ${CPUTYPE} == "core-avx-i"
|
||||
CPUTYPE = ivybridge
|
||||
. elif ${CPUTYPE} == "corei7-avx"
|
||||
CPUTYPE = sandybridge
|
||||
. elif ${CPUTYPE} == "corei7"
|
||||
CPUTYPE = nehalem
|
||||
. elif ${CPUTYPE} == "slm"
|
||||
CPUTYPE = silvermont
|
||||
. elif ${CPUTYPE} == "atom"
|
||||
CPUTYPE = bonnell
|
||||
. elif ${CPUTYPE} == "core"
|
||||
CPUTYPE = prescott
|
||||
. elif ${CPUTYPE} == "p4"
|
||||
CPUTYPE = pentium4
|
||||
. elif ${CPUTYPE} == "p4m"
|
||||
CPUTYPE = pentium4m
|
||||
. elif ${CPUTYPE} == "p3"
|
||||
CPUTYPE = pentium3
|
||||
. elif ${CPUTYPE} == "p3m"
|
||||
CPUTYPE = pentium3m
|
||||
. elif ${CPUTYPE} == "p-m"
|
||||
CPUTYPE = pentium-m
|
||||
. elif ${CPUTYPE} == "p2"
|
||||
CPUTYPE = pentium2
|
||||
. elif ${CPUTYPE} == "i686"
|
||||
CPUTYPE = pentiumpro
|
||||
. elif ${CPUTYPE} == "i586/mmx"
|
||||
CPUTYPE = pentium-mmx
|
||||
. elif ${CPUTYPE} == "i586"
|
||||
CPUTYPE = pentium
|
||||
. endif
|
||||
. elif ${MACHINE_CPUARCH} == "amd64"
|
||||
. if ${CPUTYPE} == "barcelona"
|
||||
CPUTYPE = amdfam10
|
||||
. elif ${CPUTYPE} == "westmere" || ${CPUTYPE} == "nehalem"
|
||||
CPUTYPE = corei7
|
||||
. elif ${CPUTYPE} == "prescott"
|
||||
. if ${MACHINE_CPUARCH} == "amd64"
|
||||
. if ${CPUTYPE} == "prescott"
|
||||
CPUTYPE = nocona
|
||||
. endif
|
||||
. else
|
||||
. if ${CPUTYPE} == "k7"
|
||||
CPUTYPE = athlon
|
||||
. elif ${CPUTYPE} == "p4"
|
||||
CPUTYPE = pentium4
|
||||
. elif ${CPUTYPE} == "p4m"
|
||||
CPUTYPE = pentium4m
|
||||
. elif ${CPUTYPE} == "p3"
|
||||
CPUTYPE = pentium3
|
||||
. elif ${CPUTYPE} == "p3m"
|
||||
CPUTYPE = pentium3m
|
||||
. elif ${CPUTYPE} == "p-m"
|
||||
CPUTYPE = pentium-m
|
||||
. elif ${CPUTYPE} == "p2"
|
||||
CPUTYPE = pentium2
|
||||
. elif ${CPUTYPE} == "i686"
|
||||
CPUTYPE = pentiumpro
|
||||
. elif ${CPUTYPE} == "i586/mmx"
|
||||
CPUTYPE = pentium-mmx
|
||||
. elif ${CPUTYPE} == "i586"
|
||||
CPUTYPE = pentium
|
||||
. endif
|
||||
. endif
|
||||
. elif ${MACHINE_ARCH} == "sparc64"
|
||||
. if ${CPUTYPE} == "us"
|
||||
@ -99,7 +108,7 @@ _CPUCFLAGS = -march=armv5te -D__XSCALE__
|
||||
. elif ${CPUTYPE} == "armv6"
|
||||
_CPUCFLAGS = -march=${CPUTYPE} -DARM_ARCH_6=1
|
||||
. elif ${CPUTYPE} == "cortexa"
|
||||
_CPUCFLAGS = -DARM_ARCH_6=1 -mfpu=vfp
|
||||
_CPUCFLAGS = -march=armv7 -DARM_ARCH_6=1 -mfpu=vfp
|
||||
. else
|
||||
_CPUCFLAGS = -mcpu=${CPUTYPE}
|
||||
. endif
|
||||
@ -140,7 +149,9 @@ _CPUCFLAGS = -mcpu=ultrasparc3
|
||||
# presence of a CPU feature.
|
||||
|
||||
. if ${MACHINE_CPUARCH} == "i386"
|
||||
. if ${CPUTYPE} == "bdver3" || ${CPUTYPE} == "bdver2" || \
|
||||
. if ${CPUTYPE} == "bdver4"
|
||||
MACHINE_CPU = xop avx2 avx sse42 sse41 ssse3 sse4a sse3 sse2 sse mmx k6 k5 i586
|
||||
. elif ${CPUTYPE} == "bdver3" || ${CPUTYPE} == "bdver2" || \
|
||||
${CPUTYPE} == "bdver1"
|
||||
MACHINE_CPU = xop avx sse42 sse41 ssse3 sse4a sse3 sse2 sse mmx k6 k5 i586
|
||||
. elif ${CPUTYPE} == "btver2"
|
||||
@ -165,15 +176,18 @@ MACHINE_CPU = 3dnow mmx k6 k5 i586
|
||||
MACHINE_CPU = mmx k6 k5 i586
|
||||
. elif ${CPUTYPE} == "k5"
|
||||
MACHINE_CPU = k5 i586
|
||||
. elif ${CPUTYPE} == "core-avx2"
|
||||
. elif ${CPUTYPE} == "skylake" || ${CPUTYPE} == "knl"
|
||||
MACHINE_CPU = avx512 avx2 avx sse42 sse41 ssse3 sse3 sse2 sse i686 mmx i586
|
||||
. elif ${CPUTYPE} == "broadwell" || ${CPUTYPE} == "haswell"
|
||||
MACHINE_CPU = avx2 avx sse42 sse41 ssse3 sse3 sse2 sse i686 mmx i586
|
||||
. elif ${CPUTYPE} == "core-avx-i" || ${CPUTYPE} == "corei7-avx"
|
||||
. elif ${CPUTYPE} == "ivybridge" || ${CPUTYPE} == "sandybridge"
|
||||
MACHINE_CPU = avx sse42 sse41 ssse3 sse3 sse2 sse i686 mmx i586
|
||||
. elif ${CPUTYPE} == "slm" || ${CPUTYPE} == "corei7"
|
||||
. elif ${CPUTYPE} == "westmere" || ${CPUTYPE} == "nehalem" || \
|
||||
${CPUTYPE} == "silvermont"
|
||||
MACHINE_CPU = sse42 sse41 ssse3 sse3 sse2 sse i686 mmx i586
|
||||
. elif ${CPUTYPE} == "penryn"
|
||||
MACHINE_CPU = sse41 ssse3 sse3 sse2 sse i686 mmx i586
|
||||
. elif ${CPUTYPE} == "atom" || ${CPUTYPE} == "core2"
|
||||
. elif ${CPUTYPE} == "core2" || ${CPUTYPE} == "bonnell"
|
||||
MACHINE_CPU = ssse3 sse3 sse2 sse i686 mmx i586
|
||||
. elif ${CPUTYPE} == "yonah" || ${CPUTYPE} == "prescott"
|
||||
MACHINE_CPU = sse3 sse2 sse i686 mmx i586
|
||||
@ -203,7 +217,9 @@ MACHINE_CPU = mmx
|
||||
. endif
|
||||
MACHINE_CPU += i486
|
||||
. elif ${MACHINE_CPUARCH} == "amd64"
|
||||
. if ${CPUTYPE} == "bdver3" || ${CPUTYPE} == "bdver2" || \
|
||||
. if ${CPUTYPE} == "bdver4"
|
||||
MACHINE_CPU = xop avx2 avx sse42 sse41 ssse3 sse4a sse3
|
||||
. elif ${CPUTYPE} == "bdver3" || ${CPUTYPE} == "bdver2" || \
|
||||
${CPUTYPE} == "bdver1"
|
||||
MACHINE_CPU = xop avx sse42 sse41 ssse3 sse4a sse3
|
||||
. elif ${CPUTYPE} == "btver2"
|
||||
@ -218,15 +234,18 @@ MACHINE_CPU = k8 3dnow sse3
|
||||
. elif ${CPUTYPE} == "opteron" || ${CPUTYPE} == "athlon64" || \
|
||||
${CPUTYPE} == "athlon-fx" || ${CPUTYPE} == "k8"
|
||||
MACHINE_CPU = k8 3dnow
|
||||
. elif ${CPUTYPE} == "core-avx2"
|
||||
. elif ${CPUTYPE} == "skylake" || ${CPUTYPE} == "knl"
|
||||
MACHINE_CPU = avx512 avx2 avx sse42 sse41 ssse3 sse3
|
||||
. elif ${CPUTYPE} == "broadwell" || ${CPUTYPE} == "haswell"
|
||||
MACHINE_CPU = avx2 avx sse42 sse41 ssse3 sse3
|
||||
. elif ${CPUTYPE} == "core-avx-i" || ${CPUTYPE} == "corei7-avx"
|
||||
. elif ${CPUTYPE} == "ivybridge" || ${CPUTYPE} == "sandybridge"
|
||||
MACHINE_CPU = avx sse42 sse41 ssse3 sse3
|
||||
. elif ${CPUTYPE} == "slm" || ${CPUTYPE} == "corei7"
|
||||
. elif ${CPUTYPE} == "westmere" || ${CPUTYPE} == "nehalem" || \
|
||||
${CPUTYPE} == "silvermont"
|
||||
MACHINE_CPU = sse42 sse41 ssse3 sse3
|
||||
. elif ${CPUTYPE} == "penryn"
|
||||
MACHINE_CPU = sse41 ssse3 sse3
|
||||
. elif ${CPUTYPE} == "atom" || ${CPUTYPE} == "core2"
|
||||
. elif ${CPUTYPE} == "core2" || ${CPUTYPE} == "bonnell"
|
||||
MACHINE_CPU = ssse3 sse3
|
||||
. elif ${CPUTYPE} == "nocona"
|
||||
MACHINE_CPU = sse3
|
||||
@ -251,6 +270,10 @@ MACHINE_CPU = v9 ultrasparc ultrasparc3
|
||||
CFLAGS += -G0
|
||||
.endif
|
||||
|
||||
.if ${MACHINE_ARCH} == "armv6"
|
||||
_CPUCFLAGS += -mfloat-abi=softfp
|
||||
.endif
|
||||
|
||||
# NB: COPTFLAGS is handled in /usr/src/sys/conf/kern.pre.mk
|
||||
|
||||
.if !defined(NO_CPU_CFLAGS)
|
||||
|
@ -121,28 +121,25 @@ ${_YC:R}.o: ${_YC}
|
||||
.endfor
|
||||
|
||||
# DTrace probe definitions
|
||||
# libelf is currently needed for drti.o
|
||||
.if ${SRCS:M*.d}
|
||||
LDADD+= -lelf
|
||||
DPADD+= ${LIBELF}
|
||||
CFLAGS+= -I${.OBJDIR}
|
||||
.endif
|
||||
.for _DSRC in ${SRCS:M*.d:N*/*}
|
||||
.for _D in ${_DSRC:R}
|
||||
DHDRS+= ${_D}.h
|
||||
${_D}.h: ${_DSRC}
|
||||
${DTRACE} -xnolibs -h -s ${.ALLSRC}
|
||||
${DTRACE} ${DTRACEFLAGS} -h -s ${.ALLSRC}
|
||||
SRCS:= ${SRCS:S/^${_DSRC}$//}
|
||||
OBJS+= ${_D}.o
|
||||
CLEANFILES+= ${_D}.h ${_D}.o
|
||||
${_D}.o: ${_DSRC} ${OBJS:S/^${_D}.o$//}
|
||||
${DTRACE} -xnolibs -G -o ${.TARGET} -s ${.ALLSRC}
|
||||
${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC}
|
||||
.if defined(LIB)
|
||||
CLEANFILES+= ${_D}.So ${_D}.po
|
||||
${_D}.So: ${_DSRC} ${SOBJS:S/^${_D}.So$//}
|
||||
${DTRACE} -xnolibs -G -o ${.TARGET} -s ${.ALLSRC}
|
||||
${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC}
|
||||
${_D}.po: ${_DSRC} ${POBJS:S/^${_D}.po$//}
|
||||
${DTRACE} -xnolibs -G -o ${.TARGET} -s ${.ALLSRC}
|
||||
${DTRACE} ${DTRACEFLAGS} -G -o ${.TARGET} -s ${.ALLSRC}
|
||||
.endif
|
||||
.endfor
|
||||
.endfor
|
||||
|
17
share/mk/bsd.dtb.mk
Normal file
17
share/mk/bsd.dtb.mk
Normal file
@ -0,0 +1,17 @@
|
||||
# $FreeBSD$
|
||||
|
||||
# Search for kernel source tree in standard places.
|
||||
.for _dir in ${.CURDIR}/../.. ${.CURDIR}/../../.. ${.CURDIR}/../../../.. \
|
||||
${.CURDIR}/../../../../.. /sys /usr/src/sys
|
||||
.if !defined(SYSDIR) && exists(${_dir}/kern/) && exists(${_dir}/conf/kmod.mk)
|
||||
SYSDIR= ${_dir}
|
||||
.endif
|
||||
.endfor
|
||||
.if !defined(SYSDIR) || !exists(${SYSDIR}/kern/) || \
|
||||
!exists(${SYSDIR}/conf/kmod.mk)
|
||||
.error Unable to locate the kernel source tree. Set SYSDIR to override.
|
||||
.endif
|
||||
|
||||
.include "${SYSDIR}/conf/dtb.mk"
|
||||
|
||||
.include <bsd.sys.mk>
|
@ -1,6 +1,7 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.if ${MACHINE_ARCH} == "amd64" || \
|
||||
.if ${MACHINE_ARCH} == "aarch64" || \
|
||||
${MACHINE_ARCH} == "amd64" || \
|
||||
${MACHINE_ARCH} == "i386" || \
|
||||
(${MACHINE} == "arm" && ${MACHINE_ARCH:Marm*eb*} == "") || \
|
||||
${MACHINE_ARCH:Mmips*el} != ""
|
||||
|
@ -23,7 +23,7 @@ all: buildincludes
|
||||
${group}OWN?= ${BINOWN}
|
||||
${group}GRP?= ${BINGRP}
|
||||
${group}MODE?= ${NOBINMODE}
|
||||
${group}DIR?= ${INCLUDEDIR}
|
||||
${group}DIR?= ${INCLUDEDIR}${PRIVATELIB:D/private/${LIB}}
|
||||
STAGE_SETS+= ${group}
|
||||
STAGE_DIR.${group}= ${STAGE_OBJTOP}${${group}DIR}
|
||||
STAGE_SYMLINKS_DIR.${group}= ${STAGE_OBJTOP}
|
||||
|
@ -121,7 +121,6 @@ DVIPS2ASCII?= dvips2ascii
|
||||
IFILENS+= ${INFO:S/$/.${_f}/}
|
||||
.endfor
|
||||
|
||||
.if ${MK_INFO} != "no"
|
||||
CLEANFILES+= ${IFILENS}
|
||||
.if !defined(NO_INFOCOMPRESS)
|
||||
CLEANFILES+= ${IFILENS:S/$/${ICOMPRESS_EXT}/}
|
||||
@ -131,9 +130,6 @@ all: ${IFILES}
|
||||
IFILES= ${IFILENS}
|
||||
all: ${IFILES}
|
||||
.endif
|
||||
.else
|
||||
all:
|
||||
.endif
|
||||
|
||||
.for x in ${IFILENS}
|
||||
${x:S/$/${ICOMPRESS_EXT}/}: ${x}
|
||||
@ -177,7 +173,7 @@ CLEANFILES+= ${INFO:S/$/-la.texi/}
|
||||
CLEANFILES+= ${INFO:S/$/.info.*.html/} ${INFO:S/$/.info/}
|
||||
.endif
|
||||
|
||||
.if ${MK_INFO} != "no" && defined(INFO)
|
||||
.if defined(INFO)
|
||||
install: ${INSTALLINFODIRS}
|
||||
.if !empty(IFILES:N*.html)
|
||||
${INSTALL} -o ${INFOOWN} -g ${INFOGRP} -m ${INFOMODE} \
|
||||
|
@ -13,5 +13,3 @@ SYSDIR= ${_dir}
|
||||
.endif
|
||||
|
||||
.include "${SYSDIR}/conf/kmod.mk"
|
||||
|
||||
.include <bsd.sys.mk>
|
||||
|
@ -4,6 +4,14 @@
|
||||
|
||||
.include <bsd.init.mk>
|
||||
|
||||
.if defined(LIB_CXX)
|
||||
LIB= ${LIB_CXX}
|
||||
_LD= ${CXX}
|
||||
.else
|
||||
_LD= ${CC}
|
||||
.endif
|
||||
|
||||
LIB_PRIVATE= ${PRIVATELIB:Dprivate}
|
||||
# Set up the variables controlling shared libraries. After this section,
|
||||
# SHLIB_NAME will be defined only if we are to create a shared library.
|
||||
# SHLIB_LINK will be defined only if we are to create a link to it.
|
||||
@ -16,7 +24,7 @@
|
||||
SHLIB= ${LIB}
|
||||
.endif
|
||||
.if !defined(SHLIB_NAME) && defined(SHLIB) && defined(SHLIB_MAJOR)
|
||||
SHLIB_NAME= lib${SHLIB}.so.${SHLIB_MAJOR}
|
||||
SHLIB_NAME= lib${LIB_PRIVATE}${SHLIB}.so.${SHLIB_MAJOR}
|
||||
.endif
|
||||
.if defined(SHLIB_NAME) && !empty(SHLIB_NAME:M*.so.*)
|
||||
SHLIB_LINK?= ${SHLIB_NAME:R}
|
||||
@ -123,13 +131,8 @@ all: beforebuild .WAIT
|
||||
beforebuild: objwarn
|
||||
.endif
|
||||
|
||||
.if defined(PRIVATELIB)
|
||||
_LIBDIR:=${LIBPRIVATEDIR}
|
||||
_SHLIBDIR:=${LIBPRIVATEDIR}
|
||||
.else
|
||||
_LIBDIR:=${LIBDIR}
|
||||
_SHLIBDIR:=${SHLIBDIR}
|
||||
.endif
|
||||
|
||||
.if defined(SHLIB_NAME)
|
||||
.if ${MK_DEBUG_FILES} != "no"
|
||||
@ -157,44 +160,32 @@ ${SHLIB_NAME_FULL}: ${VERSION_MAP}
|
||||
LDFLAGS+= -Wl,--version-script=${VERSION_MAP}
|
||||
.endif
|
||||
|
||||
.if defined(USEPRIVATELIB)
|
||||
LDFLAGS+= -rpath ${LIBPRIVATEDIR}
|
||||
.endif
|
||||
|
||||
.if defined(LIB) && !empty(LIB) || defined(SHLIB_NAME)
|
||||
OBJS+= ${SRCS:N*.h:R:S/$/.o/}
|
||||
NOPATH_FILES+= ${OBJS}
|
||||
.endif
|
||||
|
||||
.if defined(LIB) && !empty(LIB)
|
||||
_LIBS= lib${LIB}.a
|
||||
_LIBS= lib${LIB_PRIVATE}${LIB}.a
|
||||
|
||||
lib${LIB}.a: ${OBJS} ${STATICOBJS}
|
||||
lib${LIB_PRIVATE}${LIB}.a: ${OBJS} ${STATICOBJS}
|
||||
@${ECHO} building static ${LIB} library
|
||||
@rm -f ${.TARGET}
|
||||
.if !defined(NM)
|
||||
@${AR} ${ARFLAGS} ${.TARGET} `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD}
|
||||
.else
|
||||
@${AR} ${ARFLAGS} ${.TARGET} `NM='${NM}' lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD}
|
||||
.endif
|
||||
${RANLIB} ${RANLIBFLAGS} ${.TARGET}
|
||||
.endif
|
||||
|
||||
.if !defined(INTERNALLIB)
|
||||
|
||||
.if ${MK_PROFILE} != "no" && defined(LIB) && !empty(LIB)
|
||||
_LIBS+= lib${LIB}_p.a
|
||||
_LIBS+= lib${LIB_PRIVATE}${LIB}_p.a
|
||||
POBJS+= ${OBJS:.o=.po} ${STATICOBJS:.o=.po}
|
||||
NOPATH_FILES+= ${POBJS}
|
||||
|
||||
lib${LIB}_p.a: ${POBJS}
|
||||
lib${LIB_PRIVATE}${LIB}_p.a: ${POBJS}
|
||||
@${ECHO} building profiled ${LIB} library
|
||||
@rm -f ${.TARGET}
|
||||
.if !defined(NM)
|
||||
@${AR} ${ARFLAGS} ${.TARGET} `lorder ${POBJS} | tsort -q` ${ARADD}
|
||||
.else
|
||||
@${AR} ${ARFLAGS} ${.TARGET} `NM='${NM}' lorder ${POBJS} | tsort -q` ${ARADD}
|
||||
.endif
|
||||
${RANLIB} ${RANLIBFLAGS} ${.TARGET}
|
||||
.endif
|
||||
|
||||
@ -209,7 +200,12 @@ _LIBS+= ${SHLIB_NAME}
|
||||
|
||||
SOLINKOPTS= -shared -Wl,-x
|
||||
.if !defined(ALLOW_SHARED_TEXTREL)
|
||||
SOLINKOPTS+= -Wl,--fatal-warnings -Wl,--warn-shared-textrel
|
||||
.if defined(LD_FATAL_WARNINGS) && ${LD_FATAL_WARNINGS} == "no"
|
||||
SOLINKOPTS+= -Wl,--no-fatal-warnings
|
||||
.else
|
||||
SOLINKOPTS+= -Wl,--fatal-warnings
|
||||
.endif
|
||||
SOLINKOPTS+= -Wl,--warn-shared-textrel
|
||||
.endif
|
||||
|
||||
.if target(beforelinking)
|
||||
@ -252,15 +248,9 @@ ${SHLIB_NAME_FULL}: ${SOBJS}
|
||||
.if defined(SHLIB_LINK) && !commands(${SHLIB_LINK:R}.ld)
|
||||
@${INSTALL_SYMLINK} ${SHLIB_NAME} ${SHLIB_LINK}
|
||||
.endif
|
||||
.if !defined(NM)
|
||||
@${CC} ${LDFLAGS} ${SSP_CFLAGS} ${SOLINKOPTS} \
|
||||
-o ${.TARGET} -Wl,-soname,${SONAME} \
|
||||
`lorder ${SOBJS} | tsort -q` ${LDADD}
|
||||
.else
|
||||
@${CC} ${LDFLAGS} ${SSP_CFLAGS} ${SOLINKOPTS} \
|
||||
${_LD} ${LDFLAGS} ${SSP_CFLAGS} ${SOLINKOPTS} \
|
||||
-o ${.TARGET} -Wl,-soname,${SONAME} \
|
||||
`NM='${NM}' lorder ${SOBJS} | tsort -q` ${LDADD}
|
||||
.endif
|
||||
.if ${MK_CTF} != "no"
|
||||
${CTFMERGE} ${CTFFLAGS} -o ${.TARGET} ${SOBJS}
|
||||
.endif
|
||||
@ -277,9 +267,9 @@ ${SHLIB_NAME}.debug: ${SHLIB_NAME_FULL}
|
||||
.endif #defined(SHLIB_NAME)
|
||||
|
||||
.if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) && ${MK_TOOLCHAIN} != "no"
|
||||
_LIBS+= lib${LIB}_pic.a
|
||||
_LIBS+= lib${LIB_PRIVATE}${LIB}_pic.a
|
||||
|
||||
lib${LIB}_pic.a: ${SOBJS}
|
||||
lib${LIB_PRIVATE}${LIB}_pic.a: ${SOBJS}
|
||||
@${ECHO} building special pic ${LIB} library
|
||||
@rm -f ${.TARGET}
|
||||
@${AR} ${ARFLAGS} ${.TARGET} ${SOBJS} ${ARADD}
|
||||
@ -317,7 +307,7 @@ _EXTRADEPEND:
|
||||
mv $$TMP ${DEPENDFILE}
|
||||
.if !defined(NO_EXTRADEPEND) && defined(SHLIB_NAME)
|
||||
.if defined(DPADD) && !empty(DPADD)
|
||||
echo ${SHLIB_NAME}: ${DPADD} >> ${DEPENDFILE}
|
||||
echo ${SHLIB_NAME_FULL}: ${DPADD} >> ${DEPENDFILE}
|
||||
.endif
|
||||
.endif
|
||||
|
||||
@ -343,13 +333,13 @@ _SHLINSTALLFLAGS:= ${_SHLINSTALLFLAGS${ie}}
|
||||
realinstall: _libinstall
|
||||
.ORDER: beforeinstall _libinstall
|
||||
_libinstall:
|
||||
.if defined(LIB) && !empty(LIB) && ${MK_INSTALLLIB} != "no" && !defined(PRIVATELIB)
|
||||
.if defined(LIB) && !empty(LIB) && ${MK_INSTALLLIB} != "no"
|
||||
${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
|
||||
${_INSTALLFLAGS} lib${LIB}.a ${DESTDIR}${_LIBDIR}
|
||||
${_INSTALLFLAGS} lib${LIB_PRIVATE}${LIB}.a ${DESTDIR}${_LIBDIR}
|
||||
.endif
|
||||
.if ${MK_PROFILE} != "no" && defined(LIB) && !empty(LIB) && !defined(PRIVATELIB)
|
||||
.if ${MK_PROFILE} != "no" && defined(LIB) && !empty(LIB)
|
||||
${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
|
||||
${_INSTALLFLAGS} lib${LIB}_p.a ${DESTDIR}${_LIBDIR}
|
||||
${_INSTALLFLAGS} lib${LIB_PRIVATE}${LIB}_p.a ${DESTDIR}${_LIBDIR}
|
||||
.endif
|
||||
.if defined(SHLIB_NAME)
|
||||
${INSTALL} ${STRIP} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
|
||||
@ -363,7 +353,7 @@ _libinstall:
|
||||
${_INSTALLFLAGS} \
|
||||
${SHLIB_NAME}.debug ${DESTDIR}${DEBUGFILEDIR}
|
||||
.endif
|
||||
.if defined(SHLIB_LINK) && !defined(PRIVATELIB)
|
||||
.if defined(SHLIB_LINK)
|
||||
.if commands(${SHLIB_LINK:R}.ld)
|
||||
${INSTALL} -S -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
|
||||
${_INSTALLFLAGS} ${SHLIB_LINK:R}.ld \
|
||||
@ -382,7 +372,7 @@ _libinstall:
|
||||
.endif # SHLIB_LDSCRIPT
|
||||
.endif # SHLIB_LINK
|
||||
.endif # SHIB_NAME
|
||||
.if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) && ${MK_TOOLCHAIN} != "no" && !defined(PRIVATELIB)
|
||||
.if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) && ${MK_TOOLCHAIN} != "no"
|
||||
${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
|
||||
${_INSTALLFLAGS} lib${LIB}_pic.a ${DESTDIR}${_LIBDIR}
|
||||
.endif
|
||||
|
@ -39,6 +39,7 @@ LIBCRYPT?= ${DESTDIR}${LIBDIR}/libcrypt.a
|
||||
LIBCRYPTO?= ${DESTDIR}${LIBDIR}/libcrypto.a
|
||||
LIBCTF?= ${DESTDIR}${LIBDIR}/libctf.a
|
||||
LIBCURSES?= ${DESTDIR}${LIBDIR}/libcurses.a
|
||||
LIBDEVCTL?= ${DESTDIR}${LIBDIR}/libdevctl.a
|
||||
LIBDEVINFO?= ${DESTDIR}${LIBDIR}/libdevinfo.a
|
||||
LIBDEVSTAT?= ${DESTDIR}${LIBDIR}/libdevstat.a
|
||||
LIBDIALOG?= ${DESTDIR}${LIBDIR}/libdialog.a
|
||||
@ -54,6 +55,7 @@ LIBFIGPAR?= ${DESTDIR}${LIBDIR}/libfigpar.a
|
||||
LIBFL?= "don't use LIBFL, use LIBL"
|
||||
LIBFORM?= ${DESTDIR}${LIBDIR}/libform.a
|
||||
LIBG2C?= ${DESTDIR}${LIBDIR}/libg2c.a
|
||||
LIBGPIO?= ${DESTDIR}${LIBDIR}/libgpio.a
|
||||
LIBGEOM?= ${DESTDIR}${LIBDIR}/libgeom.a
|
||||
LIBGNUREGEX?= ${DESTDIR}${LIBDIR}/libgnuregex.a
|
||||
LIBGSSAPI?= ${DESTDIR}${LIBDIR}/libgssapi.a
|
||||
@ -83,6 +85,7 @@ LIBMEMSTAT?= ${DESTDIR}${LIBDIR}/libmemstat.a
|
||||
LIBMENU?= ${DESTDIR}${LIBDIR}/libmenu.a
|
||||
LIBMILTER?= ${DESTDIR}${LIBDIR}/libmilter.a
|
||||
LIBMP?= ${DESTDIR}${LIBDIR}/libmp.a
|
||||
LIBMT?= ${DESTDIR}${LIBDIR}/libmt.a
|
||||
LIBNCURSES?= ${DESTDIR}${LIBDIR}/libncurses.a
|
||||
LIBNCURSESW?= ${DESTDIR}${LIBDIR}/libncursesw.a
|
||||
LIBNETGRAPH?= ${DESTDIR}${LIBDIR}/libnetgraph.a
|
||||
@ -90,33 +93,7 @@ LIBNGATM?= ${DESTDIR}${LIBDIR}/libngatm.a
|
||||
LIBNV?= ${DESTDIR}${LIBDIR}/libnv.a
|
||||
LIBNVPAIR?= ${DESTDIR}${LIBDIR}/libnvpair.a
|
||||
LIBOPIE?= ${DESTDIR}${LIBDIR}/libopie.a
|
||||
|
||||
# The static PAM library doesn't know its secondary dependencies,
|
||||
# so we have to specify them explicitly. Ths is an unfortunate,
|
||||
# but necessary departure from testing MK_ flags to define
|
||||
# values here.
|
||||
LIBPAM?= ${DESTDIR}${LIBDIR}/libpam.a
|
||||
MINUSLPAM= -lpam
|
||||
.if defined(LDFLAGS) && !empty(LDFLAGS:M-static)
|
||||
.if ${MK_KERBEROS} != "no"
|
||||
LIBPAM+= ${LIBKRB5} ${LIBHX509} ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} \
|
||||
${LIBROKEN} ${LIBCOM_ERR}
|
||||
MINUSLPAM+= -lkrb5 -lhx509 -lasn1 -lcrypto -lcrypt -lroken -lcom_err
|
||||
.endif
|
||||
LIBPAM+= ${LIBRADIUS} ${LIBTACPLUS} ${LIBCRYPT} \
|
||||
${LIBUTIL} ${LIBOPIE} ${LIBMD}
|
||||
MINUSLPAM+= -lradius -ltacplus -lcrypt \
|
||||
-lutil -lopie -lmd
|
||||
.if ${MK_OPENSSH} != "no"
|
||||
LIBPAM+= ${LIBSSH} ${LIBCRYPTO} ${LIBCRYPT}
|
||||
MINUSLPAM+= -lssh -lcrypto -lcrypt
|
||||
.endif
|
||||
.if ${MK_NIS} != "no"
|
||||
LIBPAM+= ${LIBYPCLNT}
|
||||
MINUSLPAM+= -lypclnt
|
||||
.endif
|
||||
.endif
|
||||
|
||||
LIBPANEL?= ${DESTDIR}${LIBDIR}/libpanel.a
|
||||
LIBPCAP?= ${DESTDIR}${LIBDIR}/libpcap.a
|
||||
LIBPJDLOG?= ${DESTDIR}${LIBDIR}/libpjdlog.a
|
||||
@ -155,9 +132,20 @@ LIBVMMAPI?= ${DESTDIR}${LIBDIR}/libvmmapi.a
|
||||
LIBWIND?= ${DESTDIR}${LIBDIR}/libwind.a
|
||||
LIBWRAP?= ${DESTDIR}${LIBDIR}/libwrap.a
|
||||
LIBXPG4?= ${DESTDIR}${LIBDIR}/libxpg4.a
|
||||
LIBXO?= ${DESTDIR}${LIBDIR}/libxo.a
|
||||
LIBY?= ${DESTDIR}${LIBDIR}/liby.a
|
||||
LIBYPCLNT?= ${DESTDIR}${LIBDIR}/libypclnt.a
|
||||
LIBZ?= ${DESTDIR}${LIBDIR}/libz.a
|
||||
LIBZFS?= ${DESTDIR}${LIBDIR}/libzfs.a
|
||||
LIBZFS_CORE?= ${DESTDIR}${LIBDIR}/libzfs_core.a
|
||||
LIBZPOOL?= ${DESTDIR}${LIBDIR}/libzpool.a
|
||||
|
||||
# enforce the 2 -lpthread and -lc to always be the last in that exact order
|
||||
.if defined(LDADD)
|
||||
.if ${LDADD:M-lpthread}
|
||||
LDADD:= ${LDADD:N-lpthread} -lpthread
|
||||
.endif
|
||||
.if ${LDADD:M-lc}
|
||||
LDADD:= ${LDADD:N-lc} -lc
|
||||
.endif
|
||||
.endif
|
||||
|
@ -7,25 +7,11 @@
|
||||
afterinstall: _installlinks
|
||||
.ORDER: realinstall _installlinks
|
||||
_installlinks:
|
||||
.if defined(LINKS) && !empty(LINKS)
|
||||
@set ${LINKS}; \
|
||||
while test $$# -ge 2; do \
|
||||
l=${DESTDIR}$$1; \
|
||||
shift; \
|
||||
t=${DESTDIR}$$1; \
|
||||
shift; \
|
||||
${ECHO} $$t -\> $$l; \
|
||||
${INSTALL_LINK} $$l $$t; \
|
||||
done; true
|
||||
.endif
|
||||
.if defined(SYMLINKS) && !empty(SYMLINKS)
|
||||
@set ${SYMLINKS}; \
|
||||
while test $$# -ge 2; do \
|
||||
l=$$1; \
|
||||
shift; \
|
||||
t=${DESTDIR}$$1; \
|
||||
shift; \
|
||||
${ECHO} $$t -\> $$l; \
|
||||
${INSTALL_SYMLINK} $$l $$t; \
|
||||
done; true
|
||||
.endif
|
||||
.for s t in ${LINKS}
|
||||
@${ECHO} "$t -> $s" ;\
|
||||
${INSTALL_LINK} ${DESTDIR}$s ${DESTDIR}$t
|
||||
.endfor
|
||||
.for s t in ${SYMLINKS}
|
||||
@${ECHO} "$t -> $s" ;\
|
||||
${INSTALL_SYMLINK} $s ${DESTDIR}/$t
|
||||
.endfor
|
||||
|
@ -38,7 +38,7 @@
|
||||
# MANBUILDCAT create preformatted manual pages in addition to normal
|
||||
# pages. [not set]
|
||||
#
|
||||
# MROFF_CMD command and flags to create preformatted pages
|
||||
# MANDOC_CMD command and flags to create preformatted pages
|
||||
#
|
||||
# +++ targets +++
|
||||
#
|
||||
@ -54,7 +54,7 @@ MINSTALL?= ${INSTALL} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
|
||||
|
||||
CATDIR= ${MANDIR:H:S/$/\/cat/}
|
||||
CATEXT= .cat
|
||||
MROFF_CMD?= groff -Tascii -mtty-char -man -t
|
||||
MANDOC_CMD?= mandoc -Tascii
|
||||
|
||||
MCOMPRESS_CMD?= ${COMPRESS_CMD}
|
||||
MCOMPRESS_EXT?= ${COMPRESS_EXT}
|
||||
@ -100,7 +100,7 @@ ${__target}: ${__page}
|
||||
.for __target in ${__page:T:S/$/${CATEXT}${FILTEXTENSION}/g}
|
||||
_manpages: ${__target}
|
||||
${__target}: ${__page}
|
||||
${MANFILTER} < ${.ALLSRC} | ${MROFF_CMD} > ${.TARGET}
|
||||
${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} > ${.TARGET}
|
||||
.endfor
|
||||
.endif
|
||||
.endfor
|
||||
@ -113,7 +113,7 @@ CLEANFILES+= ${MAN:T:S/$/${CATEXT}/g}
|
||||
.for __target in ${__page:T:S/$/${CATEXT}/g}
|
||||
_manpages: ${__target}
|
||||
${__target}: ${__page}
|
||||
${MROFF_CMD} ${.ALLSRC} > ${.TARGET}
|
||||
${MANDOC_CMD} ${.ALLSRC} > ${.TARGET}
|
||||
.endfor
|
||||
.endfor
|
||||
.else
|
||||
@ -144,9 +144,9 @@ ${__target}: ${__page}
|
||||
_manpages: ${__target}
|
||||
${__target}: ${__page}
|
||||
.if defined(MANFILTER)
|
||||
${MANFILTER} < ${.ALLSRC} | ${MROFF_CMD} | ${MCOMPRESS_CMD} > ${.TARGET}
|
||||
${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} | ${MCOMPRESS_CMD} > ${.TARGET}
|
||||
.else
|
||||
${MROFF_CMD} ${.ALLSRC} | ${MCOMPRESS_CMD} > ${.TARGET}
|
||||
${MANDOC_CMD} ${.ALLSRC} | ${MCOMPRESS_CMD} > ${.TARGET}
|
||||
.endif
|
||||
.endfor
|
||||
.endif
|
||||
@ -239,9 +239,9 @@ manlint:
|
||||
manlint: ${__page}lint
|
||||
${__page}lint: ${__page}
|
||||
.if defined(MANFILTER)
|
||||
${MANFILTER} < ${.ALLSRC} | ${MROFF_CMD} -ww -z
|
||||
${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} -Tlint
|
||||
.else
|
||||
${MROFF_CMD} -ww -z ${.ALLSRC}
|
||||
${MANDOC_CMD} -Tlint ${.ALLSRC}
|
||||
.endif
|
||||
.endfor
|
||||
.endif
|
||||
|
@ -98,6 +98,16 @@ obj: .PHONY
|
||||
fi; \
|
||||
${ECHO} "${CANONICALOBJDIR} created for ${.CURDIR}"; \
|
||||
fi
|
||||
.for dir in ${SRCS:H:O:u}
|
||||
@if ! test -d ${CANONICALOBJDIR}/${dir}/; then \
|
||||
mkdir -p ${CANONICALOBJDIR}/${dir}; \
|
||||
if ! test -d ${CANONICALOBJDIR}/${dir}/; then \
|
||||
${ECHO} "Unable to create ${CANONICALOBJDIR}/${dir}."; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
${ECHO} "${CANONICALOBJDIR}/${dir} created for ${.CURDIR}"; \
|
||||
fi
|
||||
.endfor
|
||||
.endif
|
||||
|
||||
.if !target(objlink)
|
||||
|
@ -11,7 +11,7 @@
|
||||
# are exceptions). Recursive makes usually add MK_FOO=no for options that they wish
|
||||
# to omit from that make.
|
||||
#
|
||||
# Makefiles must include bsd.srcpot.mk before they test the value of any MK_FOO
|
||||
# Makefiles must include bsd.mkopt.mk before they test the value of any MK_FOO
|
||||
# variable.
|
||||
#
|
||||
# Makefiles may also assume that this file is included by bsd.own.mk should it
|
||||
@ -68,16 +68,11 @@ __DEFAULT_YES_OPTIONS = \
|
||||
__DEFAULT_NO_OPTIONS = \
|
||||
CTF \
|
||||
DEBUG_FILES \
|
||||
INSTALL_AS_USER \
|
||||
INFO
|
||||
|
||||
INSTALL_AS_USER
|
||||
|
||||
# meta mode related
|
||||
__DEFAULT_NO_OPTIONS += \
|
||||
AUTO_OBJ \
|
||||
META_MODE \
|
||||
STAGING \
|
||||
STAGING_PROG
|
||||
__DEFAULT_DEPENDENT_OPTIONS = \
|
||||
STAGING_PROG/STAGING
|
||||
|
||||
.include <bsd.mkopt.mk>
|
||||
|
||||
|
@ -142,7 +142,7 @@ USER!= id -un
|
||||
.endif
|
||||
_gid!= id -g
|
||||
_gn!= id -gn
|
||||
.for x in BIN CONF DOC INFO KMOD LIB MAN NLS SHARE
|
||||
.for x in BIN CONF DOC DTB INFO KMOD LIB MAN NLS SHARE
|
||||
$xOWN= ${USER}
|
||||
$xGRP= ${_gn}
|
||||
.endfor
|
||||
@ -165,6 +165,10 @@ KMODDIR?= /boot/kernel
|
||||
KMODOWN?= ${BINOWN}
|
||||
KMODGRP?= ${BINGRP}
|
||||
KMODMODE?= ${BINMODE}
|
||||
DTBDIR?= /boot/dtb
|
||||
DTBOWN?= root
|
||||
DTBGRP?= wheel
|
||||
DTBMODE?= 444
|
||||
|
||||
LIBDIR?= /usr/lib
|
||||
LIBCOMPATDIR?= /usr/lib/compat
|
||||
@ -231,6 +235,15 @@ STRIP?= -s
|
||||
COMPRESS_CMD?= gzip -cn
|
||||
COMPRESS_EXT?= .gz
|
||||
|
||||
# Set XZ_THREADS to 1 to disable multi-threading.
|
||||
XZ_THREADS?= 0
|
||||
|
||||
.if !empty(XZ_THREADS)
|
||||
XZ_CMD?= xz -T ${XZ_THREADS}
|
||||
.else
|
||||
XZ_CMD?= xz
|
||||
.endif
|
||||
|
||||
# Pointer to the top directory into which tests are installed. Should not be
|
||||
# overriden by Makefiles, but the user may choose to set this in src.conf(5).
|
||||
TESTSBASE?= /usr/tests
|
||||
|
@ -51,10 +51,6 @@ STRIP?= -s
|
||||
LDFLAGS+= -static
|
||||
.endif
|
||||
|
||||
.if defined(USEPRIVATELIB)
|
||||
LDFLAGS+= -L${_SHLIBDIRPREFIX}${LIBPRIVATEDIR} -rpath ${LIBPRIVATEDIR}
|
||||
.endif
|
||||
|
||||
.if ${MK_DEBUG_FILES} != "no"
|
||||
PROG_FULL=${PROG}.full
|
||||
# Use ${DEBUGDIR} for base system debug files, else .debug subdirectory
|
||||
@ -62,7 +58,7 @@ PROG_FULL=${PROG}.full
|
||||
${BINDIR} == "/bin" ||\
|
||||
${BINDIR} == "/libexec" ||\
|
||||
${BINDIR} == "/sbin" ||\
|
||||
${BINDIR:C%/usr/(bin|bsdinstall|games|libexec|lpr|sendmail|sm.bin|sbin)(/.*)?%/usr/bin%} == "/usr/bin"\
|
||||
${BINDIR:C%/usr/(bin|bsdinstall|libexec|lpr|sendmail|sm.bin|sbin)(/.*)?%/usr/bin%} == "/usr/bin"\
|
||||
)
|
||||
DEBUGFILEDIR= ${DEBUGDIR}${BINDIR}
|
||||
.else
|
||||
@ -172,15 +168,15 @@ CLEANFILES+= ${OBJS}
|
||||
_EXTRADEPEND:
|
||||
.if defined(LDFLAGS) && !empty(LDFLAGS:M-nostdlib)
|
||||
.if defined(DPADD) && !empty(DPADD)
|
||||
echo ${PROG}: ${DPADD} >> ${DEPENDFILE}
|
||||
echo ${PROG_FULL}: ${DPADD} >> ${DEPENDFILE}
|
||||
.endif
|
||||
.else
|
||||
echo ${PROG}: ${LIBC} ${DPADD} >> ${DEPENDFILE}
|
||||
echo ${PROG_FULL}: ${LIBC} ${DPADD} >> ${DEPENDFILE}
|
||||
.if defined(PROG_CXX)
|
||||
.if ${COMPILER_TYPE} == "clang" && empty(CXXFLAGS:M-stdlib=libstdc++)
|
||||
echo ${PROG}: ${LIBCPLUSPLUS} >> ${DEPENDFILE}
|
||||
echo ${PROG_FULL}: ${LIBCPLUSPLUS} >> ${DEPENDFILE}
|
||||
.else
|
||||
echo ${PROG}: ${LIBSTDCPLUSPLUS} >> ${DEPENDFILE}
|
||||
echo ${PROG_FULL}: ${LIBSTDCPLUSPLUS} >> ${DEPENDFILE}
|
||||
.endif
|
||||
.endif
|
||||
.endif
|
||||
|
@ -43,7 +43,7 @@ PROG ?= $t
|
||||
.if defined(PROG)
|
||||
# just one of many
|
||||
PROG_OVERRIDE_VARS += BINDIR DPSRCS MAN SRCS
|
||||
PROG_VARS += CFLAGS CPPFLAGS CXXFLAGS DPADD DPLIBS LDADD LDFLAGS ${PROG_OVERRIDE_VARS}
|
||||
PROG_VARS += CFLAGS CPPFLAGS CXXFLAGS DPADD DPLIBS LDADD LIBADD LDFLAGS ${PROG_OVERRIDE_VARS}
|
||||
.for v in ${PROG_VARS:O:u}
|
||||
.if empty(${PROG_OVERRIDE_VARS:M$v})
|
||||
.if defined(${v}.${PROG})
|
||||
|
@ -35,7 +35,7 @@ __<bsd.subdir.mk>__:
|
||||
.include <bsd.init.mk>
|
||||
|
||||
.if defined(.PARSEDIR) && !defined(NEED_SUBDIR)
|
||||
.if ${.MAKE.LEVEL} == 0 && ${.MAKE.MODE:Mmeta*} != "" && !empty(SUBDIR) && !(make(clean*) || make(destroy*))
|
||||
.if ${.MAKE.LEVEL} == 0 && ${MK_META_MODE} == "yes" && !empty(SUBDIR) && !(make(clean*) || make(destroy*))
|
||||
.include <meta.subdir.mk>
|
||||
# ignore this
|
||||
_SUBDIR:
|
||||
|
@ -68,13 +68,16 @@ CWARNFLAGS+= -Wno-pointer-sign
|
||||
# is set to low values, these have to be disabled explicitly.
|
||||
.if ${WARNS} <= 6
|
||||
CWARNFLAGS.clang+= -Wno-empty-body -Wno-string-plus-int
|
||||
.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} > 30300
|
||||
.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 30400
|
||||
CWARNFLAGS.clang+= -Wno-unused-const-variable
|
||||
.endif
|
||||
.endif # WARNS <= 6
|
||||
.if ${WARNS} <= 3
|
||||
CWARNFLAGS.clang+= -Wno-tautological-compare -Wno-unused-value\
|
||||
-Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion
|
||||
.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 30600
|
||||
CWARNFLAGS.clang+= -Wno-unused-local-typedef
|
||||
.endif
|
||||
.endif # WARNS <= 3
|
||||
.if ${WARNS} <= 2
|
||||
CWARNFLAGS.clang+= -Wno-switch -Wno-switch-enum -Wno-knr-promoted-parameter
|
||||
@ -106,17 +109,31 @@ CWARNFLAGS+= -Werror
|
||||
CWARNFLAGS+= -Wno-format
|
||||
.endif # NO_WFORMAT || NO_WFORMAT.${COMPILER_TYPE}
|
||||
|
||||
# How to handle FreeBSD custom printf format specifiers.
|
||||
.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 30600
|
||||
FORMAT_EXTENSIONS= -D__printf__=__freebsd_kprintf__
|
||||
.else
|
||||
FORMAT_EXTENSIONS= -fformat-extensions
|
||||
.endif
|
||||
|
||||
.if defined(IGNORE_PRAGMA)
|
||||
CWARNFLAGS+= -Wno-unknown-pragmas
|
||||
.endif # IGNORE_PRAGMA
|
||||
|
||||
# We need this conditional because many places that use it
|
||||
# only enable it for some files with CLFAGS.$FILE+=${CLANG_NO_IAS}.
|
||||
# unconditionally, and can't easily use the CFLAGS.clang=
|
||||
# mechanism.
|
||||
.if ${COMPILER_TYPE} == "clang"
|
||||
# Would love to do this unconditionally, but can't due to its use in
|
||||
# kernel build coupled with CFLAGS.${TARGET} feature
|
||||
CLANG_NO_IAS= -no-integrated-as
|
||||
.endif
|
||||
CLANG_OPT_SMALL= -mstack-alignment=8 -mllvm -inline-threshold=3\
|
||||
-mllvm -enable-load-pre=false -mllvm -simplifycfg-dup-ret
|
||||
-mllvm -simplifycfg-dup-ret
|
||||
.if ${COMPILER_VERSION} >= 30500
|
||||
CLANG_OPT_SMALL+= -mllvm -enable-gvn=false
|
||||
.else
|
||||
CLANG_OPT_SMALL+= -mllvm -enable-load-pre=false
|
||||
.endif
|
||||
CFLAGS.clang+= -Qunused-arguments
|
||||
.if ${MACHINE_CPUARCH} == "sparc64"
|
||||
# Don't emit .cfi directives, since we must use GNU as on sparc64, for now.
|
||||
|
Loading…
Reference in New Issue
Block a user