- Add a new bsd.host.mk that contains all the HOST_ variables extracted from
bsd.sys.mk and bsd.own.mk - Add protection requiring that: 1. bsd.sys.mk is not include from other Makefiles directly 2. bsd.own.mk must be included before bsd.sys.mk since it sets variables that bsd.sys.mk uses as conditionals. This is step 1 of removing all variable settings from bsd.sys.mk and leaving behind only rules. This way, the structure of a standard Makefile is: variable overrides optionally include bsd.own.mk optionally include bsd.endian.mk variable settings that use variables defined in bsd.own.mk include a one or more rule .mk files (such as bsd.prog.mk etc)
This commit is contained in:
parent
2b043c75b6
commit
5344ef6679
@ -1,4 +1,4 @@
|
||||
# $NetBSD: bsd.README,v 1.325 2014/01/14 18:51:45 christos Exp $
|
||||
# $NetBSD: bsd.README,v 1.326 2014/01/16 01:19:46 christos Exp $
|
||||
# @(#)bsd.README 8.2 (Berkeley) 4/2/94
|
||||
|
||||
This is the README file for the make "include" files for the NetBSD
|
||||
@ -1750,11 +1750,81 @@ SUBDIR For all of the directories listed in ${SUBDIR}, the
|
||||
and other special sources.
|
||||
|
||||
|
||||
=-=-=-=-= bsd.x11.mk =-=-=-=-=
|
||||
|
||||
The include file <bsd.x11.mk> contains parameters and targets for
|
||||
cross-building X11 from ${X11SRCDIR.xc} / ${X11MITSRCDIR.*}.
|
||||
It should be included after the general Makefile contents but before
|
||||
the include files such as <bsd.prog.mk> and <bsd.lib.mk>.
|
||||
|
||||
It provides the following targets:
|
||||
.man.1 .man.3 .man.4 .man.5 .man.7:
|
||||
If ${MAN} or ${PROG} is set and ${MKMAN} != "no",
|
||||
these rules convert from X11's manual page source
|
||||
into an mdoc.old source file.
|
||||
|
||||
It sets the following variables:
|
||||
|
||||
BINDIR Set to ${X11BINDIR}.
|
||||
To override, define after including <bsd.x11.mk>
|
||||
|
||||
LIBDIR Set to ${X11USRLIBDIR}.
|
||||
To override, define after including <bsd.x11.mk>
|
||||
|
||||
MANDIR Set to ${X11MANDIR}.
|
||||
To override, define after including <bsd.x11.mk>
|
||||
|
||||
CPPFLAGS Appended with definitions to include from
|
||||
${DESTDIR}${X11INCDIR}
|
||||
|
||||
LDFLAGS Appended with definitions to link from
|
||||
${DESTDIR}${X11USRLIBDIR}
|
||||
|
||||
X11FLAGS.CONNECTION Equivalent to X11's CONNECTION_FLAGS.
|
||||
|
||||
X11FLAGS.EXTENSION Equivalent to X11's EXT_DEFINES.
|
||||
|
||||
X11FLAGS.LOADABLE Equivalent to X11's LOADABLE.
|
||||
|
||||
X11FLAGS.OS_DEFINES Equivalent to X11's OS_DEFINES.
|
||||
|
||||
X11FLAGS.SERVER Equivalent to X11's ServerDefines.
|
||||
|
||||
X11FLAGS.THREADLIB Equivalent to X11's THREADS_DEFINES for libraries.
|
||||
|
||||
X11FLAGS.THREADS Equivalent to X11's THREADS_DEFINES.
|
||||
|
||||
X11FLAGS.VERSION cpp(1) definitions of OSMAJORVERSION and OSMINORVERSION.
|
||||
|
||||
X11FLAGS.DIX Equivalent to X11's DIX_DEFINES.
|
||||
|
||||
X11TOOL_UNXCOMM Commandline to convert `XCOMM' comments to `#'
|
||||
|
||||
It uses the following variables:
|
||||
|
||||
APPDEFS List of app-default files to install.
|
||||
|
||||
CPPSCRIPTS List of files/scripts to run through cpp(1)
|
||||
and then ${X11TOOL_UNXCOMM}. The source files
|
||||
have a `.cpp' suffix, the generated files do not.
|
||||
|
||||
CPPSCRIPTFLAGS Additional flags to cpp(1) when building CPPSCRIPTS.
|
||||
|
||||
CPPSCRIPTFLAGS_<fn> Additional flags to cpp(1) when building CPPSCRIPT <fn>.
|
||||
|
||||
|
||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
|
||||
The following files are described here for completion, but they are not
|
||||
supposed to be included directly from other Makefiles; they are used
|
||||
internally by other system files.
|
||||
|
||||
=-=-=-=-= bsd.sys.mk =-=-=-=-=
|
||||
|
||||
The include file <bsd.sys.mk> is used by <bsd.prog.mk> and
|
||||
<bsd.lib.mk>. It contains overrides that are used when building
|
||||
the NetBSD source tree.
|
||||
The include file <bsd.sys.mk> is used by other system mk files and
|
||||
it is not intended to be included standalone. It contains rules and
|
||||
system build variables. It requires bsd.own.mk to be included first.
|
||||
It contains overrides that are used when building the NetBSD source tree.
|
||||
|
||||
The following variables control how various files are compiled/built.
|
||||
(Note that these may be overridden in <bsd.own.mk> if USETOOLS == "yes"):
|
||||
@ -1875,67 +1945,53 @@ WARNS Crank up compiler warning options; the distinct levels are:
|
||||
WARNS=4
|
||||
WARNS=5
|
||||
|
||||
=-=-=-=-= bsd.x11.mk =-=-=-=-=
|
||||
=-=-=-=-= bsd.host.mk =-=-=-=-=
|
||||
|
||||
The include file <bsd.x11.mk> contains parameters and targets for
|
||||
cross-building X11 from ${X11SRCDIR.xc} / ${X11MITSRCDIR.*}.
|
||||
It should be included after the general Makefile contents but before
|
||||
the include files such as <bsd.prog.mk> and <bsd.lib.mk>.
|
||||
This file is automatically included from bsd.own.mk. It contains settings
|
||||
for all the HOST_* variables that are used in host programs and libraries.
|
||||
|
||||
It provides the following targets:
|
||||
.man.1 .man.3 .man.4 .man.5 .man.7:
|
||||
If ${MAN} or ${PROG} is set and ${MKMAN} != "no",
|
||||
these rules convert from X11's manual page source
|
||||
into an mdoc.old source file.
|
||||
HOST_AR The host archive processing command
|
||||
|
||||
It sets the following variables:
|
||||
HOST_CC The host c compiler
|
||||
|
||||
BINDIR Set to ${X11BINDIR}.
|
||||
To override, define after including <bsd.x11.mk>
|
||||
HOST_CFLAGS The host c compiler flags
|
||||
|
||||
LIBDIR Set to ${X11USRLIBDIR}.
|
||||
To override, define after including <bsd.x11.mk>
|
||||
HOST_COMPILE.c The host c compiler line with flags
|
||||
|
||||
MANDIR Set to ${X11MANDIR}.
|
||||
To override, define after including <bsd.x11.mk>
|
||||
HOST_COMPILE.cc The host c++ compiler line with flags
|
||||
|
||||
CPPFLAGS Appended with definitions to include from
|
||||
${DESTDIR}${X11INCDIR}
|
||||
HOST_CPP The host c pre-processor
|
||||
|
||||
LDFLAGS Appended with definitions to link from
|
||||
${DESTDIR}${X11USRLIBDIR}
|
||||
HOST_CPPFLAGS The cost c pre-processor flags
|
||||
|
||||
X11FLAGS.CONNECTION Equivalent to X11's CONNECTION_FLAGS.
|
||||
HOST_CXX The host c++ compiler
|
||||
|
||||
X11FLAGS.EXTENSION Equivalent to X11's EXT_DEFINES.
|
||||
HOST_CXXFLAGS The host c++ compiler flags
|
||||
|
||||
X11FLAGS.LOADABLE Equivalent to X11's LOADABLE.
|
||||
HOST_INSTALL_DIR The host command to install a directory
|
||||
|
||||
X11FLAGS.OS_DEFINES Equivalent to X11's OS_DEFINES.
|
||||
HOST_INSTALL_FILE The host command to install a file
|
||||
|
||||
X11FLAGS.SERVER Equivalent to X11's ServerDefines.
|
||||
HOST_INSTALL_SYMLINK The host command to install a symlink
|
||||
|
||||
X11FLAGS.THREADLIB Equivalent to X11's THREADS_DEFINES for libraries.
|
||||
HOST_LD The host linker command
|
||||
|
||||
X11FLAGS.THREADS Equivalent to X11's THREADS_DEFINES.
|
||||
HOST_LDFLAGS The host linker flags
|
||||
|
||||
X11FLAGS.VERSION cpp(1) definitions of OSMAJORVERSION and OSMINORVERSION.
|
||||
HOST_LINK.c The host c linker line with flags
|
||||
|
||||
X11FLAGS.DIX Equivalent to X11's DIX_DEFINES.
|
||||
HOST_LINK.cc The host c++ linker line with flags
|
||||
|
||||
X11TOOL_UNXCOMM Commandline to convert `XCOMM' comments to `#'
|
||||
HOST_LN The host command to link two files
|
||||
|
||||
It uses the following variables:
|
||||
HOST_MKDEP The host command to create dependencies for c programs
|
||||
|
||||
APPDEFS List of app-default files to install.
|
||||
HOST_MKDEPCXX The host command to create dependencies for c++ programs
|
||||
|
||||
CPPSCRIPTS List of files/scripts to run through cpp(1)
|
||||
and then ${X11TOOL_UNXCOMM}. The source files
|
||||
have a `.cpp' suffix, the generated files do not.
|
||||
HOST_OSTYPE The host OSNAME-RELEASE-ARCH tupple
|
||||
|
||||
CPPSCRIPTFLAGS Additional flags to cpp(1) when building CPPSCRIPTS.
|
||||
|
||||
CPPSCRIPTFLAGS_<fn> Additional flags to cpp(1) when building CPPSCRIPT <fn>.
|
||||
HOST_RANLIB The host command to create random access archives
|
||||
|
||||
HOST_SH The host Bourne shell interpreter name (absolute path)
|
||||
|
||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
|
58
share/mk/bsd.host.mk
Normal file
58
share/mk/bsd.host.mk
Normal file
@ -0,0 +1,58 @@
|
||||
# $NetBSD: bsd.host.mk,v 1.1 2014/01/16 01:19:46 christos Exp $
|
||||
|
||||
.if !defined(_BSD_HOST_MK_)
|
||||
_BSD_HOST_MK_=1
|
||||
|
||||
# Helpers for cross-compiling
|
||||
HOST_CC?= cc
|
||||
HOST_CFLAGS?= -O
|
||||
HOST_COMPILE.c?=${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} -c
|
||||
HOST_COMPILE.cc?= ${HOST_CXX} ${HOST_CXXFLAGS} ${HOST_CPPFLAGS} -c
|
||||
HOST_LINK.cc?= ${HOST_CXX} ${HOST_CXXFLAGS} ${HOST_CPPFLAGS} ${HOST_LDFLAGS}
|
||||
.if defined(HOSTPROG_CXX)
|
||||
HOST_LINK.c?= ${HOST_LINK.cc}
|
||||
.else
|
||||
HOST_LINK.c?= ${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} ${HOST_LDFLAGS}
|
||||
.endif
|
||||
|
||||
HOST_CXX?= c++
|
||||
HOST_CXXFLAGS?= -O
|
||||
|
||||
HOST_CPP?= cpp
|
||||
HOST_CPPFLAGS?=
|
||||
|
||||
HOST_LD?= ld
|
||||
HOST_LDFLAGS?=
|
||||
|
||||
HOST_AR?= ar
|
||||
HOST_RANLIB?= ranlib
|
||||
|
||||
HOST_LN?= ln
|
||||
|
||||
# HOST_SH must be an absolute path
|
||||
HOST_SH?= /bin/sh
|
||||
|
||||
.if !defined(HOST_OSTYPE)
|
||||
_HOST_OSNAME!= uname -s
|
||||
_HOST_OSREL!= uname -r
|
||||
# For _HOST_ARCH, if uname -p fails, or prints "unknown", or prints
|
||||
# something that does not look like an identifier, then use uname -m.
|
||||
_HOST_ARCH!= uname -p 2>/dev/null
|
||||
_HOST_ARCH:= ${HOST_ARCH:tW:C/.*[^-_A-Za-z0-9].*//:S/unknown//}
|
||||
.if empty(_HOST_ARCH)
|
||||
_HOST_ARCH!= uname -m
|
||||
.endif
|
||||
HOST_OSTYPE:= ${_HOST_OSNAME}-${_HOST_OSREL:C/\([^\)]*\)//g:[*]:C/ /_/g}-${_HOST_ARCH:C/\([^\)]*\)//g:[*]:C/ /_/g}
|
||||
.MAKEOVERRIDES+= HOST_OSTYPE
|
||||
.endif # !defined(HOST_OSTYPE)
|
||||
|
||||
HOST_MKDEP?= ${TOOLDIR}/bin/${_TOOL_PREFIX}host-mkdep
|
||||
HOST_MKDEPCXX?= ${TOOLDIR}/bin/${_TOOL_PREFIX}host-mkdep
|
||||
|
||||
.if ${NEED_OWN_INSTALL_TARGET} != "no"
|
||||
HOST_INSTALL_FILE?= ${INSTALL} ${COPY} ${PRESERVE} ${RENAME}
|
||||
HOST_INSTALL_DIR?= ${INSTALL} -d
|
||||
HOST_INSTALL_SYMLINK?= ${INSTALL} ${SYMLINK} ${RENAME}
|
||||
.endif
|
||||
|
||||
.endif
|
@ -1,4 +1,4 @@
|
||||
# $NetBSD: bsd.own.mk,v 1.761 2014/01/14 11:14:27 apb Exp $
|
||||
# $NetBSD: bsd.own.mk,v 1.762 2014/01/16 01:19:46 christos Exp $
|
||||
|
||||
# This needs to be before bsd.init.mk
|
||||
.if defined(BSD_MK_COMPAT_FILE)
|
||||
@ -159,19 +159,7 @@ USETOOLS?= no
|
||||
#
|
||||
# Host platform information; may be overridden
|
||||
#
|
||||
.if !defined(HOST_OSTYPE)
|
||||
_HOST_OSNAME!= uname -s
|
||||
_HOST_OSREL!= uname -r
|
||||
# For _HOST_ARCH, if uname -p fails, or prints "unknown", or prints
|
||||
# something that does not look like an identifier, then use uname -m.
|
||||
_HOST_ARCH!= uname -p 2>/dev/null
|
||||
_HOST_ARCH:= ${HOST_ARCH:tW:C/.*[^-_A-Za-z0-9].*//:S/unknown//}
|
||||
.if empty(_HOST_ARCH)
|
||||
_HOST_ARCH!= uname -m
|
||||
.endif
|
||||
HOST_OSTYPE:= ${_HOST_OSNAME}-${_HOST_OSREL:C/\([^\)]*\)//g:[*]:C/ /_/g}-${_HOST_ARCH:C/\([^\)]*\)//g:[*]:C/ /_/g}
|
||||
.MAKEOVERRIDES+= HOST_OSTYPE
|
||||
.endif # !defined(HOST_OSTYPE)
|
||||
.include <bsd.host.mk>
|
||||
|
||||
.if ${USETOOLS} == "yes" # {
|
||||
|
||||
@ -261,9 +249,6 @@ LDFLAGS+= --sysroot=/
|
||||
.endif
|
||||
.endif # EXTERNAL_TOOLCHAIN # }
|
||||
|
||||
HOST_MKDEP= ${TOOLDIR}/bin/${_TOOL_PREFIX}host-mkdep
|
||||
HOST_MKDEPCXX= ${TOOLDIR}/bin/${_TOOL_PREFIX}host-mkdep
|
||||
|
||||
DBSYM= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-dbsym
|
||||
ELF2AOUT= ${TOOLDIR}/bin/${_TOOL_PREFIX}m68k-elf2aout
|
||||
ELF2ECOFF= ${TOOLDIR}/bin/${_TOOL_PREFIX}mips-elf2ecoff
|
||||
@ -1085,9 +1070,6 @@ INSTALL_DIR?= ${INSTALL} ${INSTPRIV} -d
|
||||
INSTALL_FILE?= ${INSTALL} ${INSTPRIV} ${COPY} ${PRESERVE} ${RENAME}
|
||||
INSTALL_LINK?= ${INSTALL} ${INSTPRIV} ${HRDLINK} ${RENAME}
|
||||
INSTALL_SYMLINK?= ${INSTALL} ${INSTPRIV} ${SYMLINK} ${RENAME}
|
||||
HOST_INSTALL_FILE?= ${INSTALL} ${COPY} ${PRESERVE} ${RENAME}
|
||||
HOST_INSTALL_DIR?= ${INSTALL} -d
|
||||
HOST_INSTALL_SYMLINK?= ${INSTALL} ${SYMLINK} ${RENAME}
|
||||
.endif
|
||||
|
||||
#
|
||||
|
@ -1,14 +1,18 @@
|
||||
# $NetBSD: bsd.sys.mk,v 1.235 2014/01/15 14:00:09 joerg Exp $
|
||||
# $NetBSD: bsd.sys.mk,v 1.236 2014/01/16 01:19:46 christos Exp $
|
||||
#
|
||||
# Build definitions used for NetBSD source tree builds.
|
||||
|
||||
.if !defined(_BSD_SYS_MK_)
|
||||
_BSD_SYS_MK_=1
|
||||
|
||||
#.if !empty(.INCLUDEDFROMFILE:MMakefile*)
|
||||
#error:
|
||||
# @(echo "bsd.sys.mk should not be included from Makefiles" >& 2; exit 1)
|
||||
#.endif
|
||||
.if !empty(.INCLUDEDFROMFILE:MMakefile*)
|
||||
error1:
|
||||
@(echo "bsd.sys.mk should not be included from Makefiles" >& 2; exit 1)
|
||||
.endif
|
||||
.if !defined(_BSD_OWN_MK_)
|
||||
error2:
|
||||
@(echo "bsd.own.mk must be included before bsd.sys.mk" >& 2; exit 1)
|
||||
.endif
|
||||
|
||||
.if ${MKREPRO:Uno} == "yes"
|
||||
CPPFLAGS+= -Wp,-iremap,${NETBSDSRCDIR}:/usr/src
|
||||
@ -152,35 +156,6 @@ PIE_LDFLAGS?= -Wl,-pie ${${ACTIVE_CC} == "gcc":? -shared-libgcc :}
|
||||
PIE_AFLAGS?= -fPIC
|
||||
.endif
|
||||
|
||||
# Helpers for cross-compiling
|
||||
HOST_CC?= cc
|
||||
HOST_CFLAGS?= -O
|
||||
HOST_COMPILE.c?=${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} -c
|
||||
HOST_COMPILE.cc?= ${HOST_CXX} ${HOST_CXXFLAGS} ${HOST_CPPFLAGS} -c
|
||||
HOST_LINK.cc?= ${HOST_CXX} ${HOST_CXXFLAGS} ${HOST_CPPFLAGS} ${HOST_LDFLAGS}
|
||||
.if defined(HOSTPROG_CXX)
|
||||
HOST_LINK.c?= ${HOST_LINK.cc}
|
||||
.else
|
||||
HOST_LINK.c?= ${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} ${HOST_LDFLAGS}
|
||||
.endif
|
||||
|
||||
HOST_CXX?= c++
|
||||
HOST_CXXFLAGS?= -O
|
||||
|
||||
HOST_CPP?= cpp
|
||||
HOST_CPPFLAGS?=
|
||||
|
||||
HOST_LD?= ld
|
||||
HOST_LDFLAGS?=
|
||||
|
||||
HOST_AR?= ar
|
||||
HOST_RANLIB?= ranlib
|
||||
|
||||
HOST_LN?= ln
|
||||
|
||||
# HOST_SH must be an absolute path
|
||||
HOST_SH?= /bin/sh
|
||||
|
||||
ELF2ECOFF?= elf2ecoff
|
||||
MKDEP?= mkdep
|
||||
MKDEPCXX?= mkdep
|
||||
@ -189,8 +164,6 @@ OBJDUMP?= objdump
|
||||
PAXCTL?= paxctl
|
||||
STRIP?= strip
|
||||
|
||||
# TOOL_* variables are defined in bsd.own.mk
|
||||
|
||||
.SUFFIXES: .o .ln .lo .c .cc .cpp .cxx .C .m ${YHEADER:D.h}
|
||||
|
||||
# C
|
||||
|
@ -1,7 +1,6 @@
|
||||
# $NetBSD: bsd.syscall.mk,v 1.1 2014/01/14 18:51:45 christos Exp $
|
||||
# $NetBSD: bsd.syscall.mk,v 1.2 2014/01/16 01:19:46 christos Exp $
|
||||
#
|
||||
.include <bsd.own.mk>
|
||||
.include <bsd.sys.mk>
|
||||
|
||||
SYSCALL_OBJS?= ${SYSCALL_PREFIX}_sysent.c ${SYSCALL_PREFIX}_syscalls.c \
|
||||
${SYSCALL_PREFIX}_syscall.h ${SYSCALL_PREFIX}_syscallargs.h
|
||||
|
Loading…
Reference in New Issue
Block a user