Index: head/share/mk/bsd.README =================================================================== --- head/share/mk/bsd.README +++ head/share/mk/bsd.README @@ -379,10 +379,6 @@ MAN Manual pages. If no MAN variable is defined, "MAN=${PROG}.1" is assumed. See bsd.man.mk for more details. -NEED_COMPAT Build and link targeting a compatability ABI or fail if it - is not available. Supported values are "32", "soft", and - "any" being a wildcard. - PROG The name of the program to build. If not supplied, nothing is built. @@ -445,9 +441,6 @@ Each of the targets will execute the same target in the subdirectories. -WANT_COMPAT Similar to NEED_COMPAT, but build with the base ABI if - the specified ABI is not available. - The include file includes the file named "../Makefile.inc" if it exists, as well as the include file . @@ -470,6 +463,20 @@ If foo has multiple source files, add the line: SRCS= a.c b.c c.c d.c + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + +The include file, , allows programs (built with +) to be built for one the ABI(s) supported by the +top-level Makefile.libcompat. It requires that also be +included. + +NEED_COMPAT Build and link targeting a compatibility ABI or fail if it + is not available. Supported values are "32", "soft", and + "any" being a wildcard. + +WANT_COMPAT Similar to NEED_COMPAT, but build with the base ABI if + the specified ABI is not available. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Index: head/share/mk/bsd.compat.mk =================================================================== --- head/share/mk/bsd.compat.mk +++ head/share/mk/bsd.compat.mk @@ -3,14 +3,22 @@ .if !targets(__<${_this:T}>__) __<${_this:T}>__: +.if defined(_LIBCOMPAT) +COMPAT_ARCH= ${TARGET_ARCH} +COMPAT_CPUTYPE= ${TARGET_CPUTYPE} +.else +COMPAT_ARCH= ${MACHINE_ARCH} +COMPAT_CPUTYPE= ${CPUTYPE} +.endif + # ------------------------------------------------------------------- # 32 bit world -.if ${TARGET_ARCH} == "amd64" +.if ${COMPAT_ARCH} == "amd64" HAS_COMPAT=32 -.if empty(TARGET_CPUTYPE) +.if empty(COMPAT_CPUTYPE) LIB32CPUFLAGS= -march=i686 -mmmx -msse -msse2 .else -LIB32CPUFLAGS= -march=${TARGET_CPUTYPE} +LIB32CPUFLAGS= -march=${COMPAT_CPUTYPE} .endif .if (defined(WANT_COMPILER_TYPE) && ${WANT_COMPILER_TYPE} == gcc) || \ (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc) @@ -24,29 +32,29 @@ AS="${XAS} --32" \ LD="${XLD} -m elf_i386_fbsd -L${LIBCOMPATTMP}/usr/lib32" -.elif ${TARGET_ARCH} == "powerpc64" +.elif ${COMPAT_ARCH} == "powerpc64" HAS_COMPAT=32 -.if empty(TARGET_CPUTYPE) +.if empty(COMPAT_CPUTYPE) LIB32CPUFLAGS= -mcpu=powerpc .else -LIB32CPUFLAGS= -mcpu=${TARGET_CPUTYPE} +LIB32CPUFLAGS= -mcpu=${COMPAT_CPUTYPE} .endif LIB32CPUFLAGS+= -m32 LIB32WMAKEENV= MACHINE=powerpc MACHINE_ARCH=powerpc LIB32WMAKEFLAGS= \ LD="${XLD} -m elf32ppc_fbsd" -.elif ${TARGET_ARCH:Mmips64*} != "" +.elif ${COMPAT_ARCH:Mmips64*} != "" HAS_COMPAT=32 .if (defined(WANT_COMPILER_TYPE) && ${WANT_COMPILER_TYPE} == gcc) || \ (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc) -.if empty(TARGET_CPUTYPE) +.if empty(COMPAT_CPUTYPE) LIB32CPUFLAGS= -march=mips3 .else -LIB32CPUFLAGS= -march=${TARGET_CPUTYPE} +LIB32CPUFLAGS= -march=${COMPAT_CPUTYPE} .endif .else -.if ${TARGET_ARCH:Mmips64el*} != "" +.if ${COMPAT_ARCH:Mmips64el*} != "" LIB32CPUFLAGS= -target mipsel-unknown-freebsd13.0 .else LIB32CPUFLAGS= -target mips-unknown-freebsd13.0 @@ -54,7 +62,7 @@ .endif LIB32CPUFLAGS+= -mabi=32 LIB32WMAKEENV= MACHINE=mips MACHINE_ARCH=mips -.if ${TARGET_ARCH:Mmips64el*} != "" +.if ${COMPAT_ARCH:Mmips64el*} != "" LIB32WMAKEFLAGS= LD="${XLD} -m elf32ltsmip_fbsd" .else LIB32WMAKEFLAGS= LD="${XLD} -m elf32btsmip_fbsd" @@ -70,11 +78,11 @@ # ------------------------------------------------------------------- # soft-fp world -.if ${TARGET_ARCH:Marmv[67]*} != "" +.if ${COMPAT_ARCH:Marmv[67]*} != "" HAS_COMPAT=SOFT LIBSOFTCFLAGS= -DCOMPAT_SOFTFP LIBSOFTCPUFLAGS= -mfloat-abi=softfp -LIBSOFTWMAKEENV= CPUTYPE=soft MACHINE=arm MACHINE_ARCH=${TARGET_ARCH} +LIBSOFTWMAKEENV= CPUTYPE=soft MACHINE=arm MACHINE_ARCH=${COMPAT_ARCH} LIBSOFTWMAKEFLAGS= -DCOMPAT_SOFTFP .endif Index: head/share/mk/bsd.prog.mk =================================================================== --- head/share/mk/bsd.prog.mk +++ head/share/mk/bsd.prog.mk @@ -2,7 +2,6 @@ # $FreeBSD$ .include -# .include .include .include