Fix buildworld. Document TOOLS_PREFIX and USRDATA_PREFIX, improve INCLUDEDIR
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 5 Apr 2004 05:30:13 +0000 (05:30 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 5 Apr 2004 05:30:13 +0000 (05:30 +0000)
documentation.  Modify bsd.incs.mk to not install header files if BOOTSTRAPPING
is set (for buildworld), and change lex to install its C++ header file in
${INCLUDEDIR}/c++ instead of ${INCLUDEDIR}/g++.  Set DESTDIR for BMAKEENV,
set BOOTSTRAPPING for XMAKE (cross build tools).  Note that DESTDIR is set
in the bootstrap-tools: target, this will be removed in a later commit.

Makefile.inc1
share/mk/bsd.incs.mk
share/mk/bsd.own.mk
usr.bin/lex/Makefile

index 1c5e6f6..41dd090 100644 (file)
@@ -1,6 +1,6 @@
 #
 # $FreeBSD: src/Makefile.inc1,v 1.141.2.62 2003/04/06 19:54:00 dwmalone Exp $
-# $DragonFly: src/Makefile.inc1,v 1.28 2004/04/04 01:08:18 dillon Exp $
+# $DragonFly: src/Makefile.inc1,v 1.29 2004/04/05 05:30:10 dillon Exp $
 #
 # Make command line options:
 #      -DMAKE_KERBEROS5 to build Kerberos5
@@ -205,7 +205,7 @@ TMPPID!=    echo $$$$
 #
 BMAKEENV=      MAKEOBJDIRPREFIX=${BTOOLSDEST} \
                OBJTREE=${OBJTREE} \
-               DESTDIR= \
+               DESTDIR=${BTOOLSDEST} \
                INSTALL="sh ${.CURDIR}/tools/install.sh"
 
 BMAKE=         ${BMAKEENV} ${MAKE} -f Makefile.inc1 -DBOOTSTRAPPING \
@@ -225,9 +225,9 @@ TMAKE=              ${TMAKEENV} ${MAKE} -f Makefile.inc1 -DBOOTSTRAPPING \
 # cross-tool stage
 #
 # note: TOOLS_PREFIX points to the obj root holding the cross
-#      compiler binaries, while INCS_PREFIX points to the obj root holding
-#      the target environment (and also determines where cross-built
-#      libraries and crt*.o are installed).
+#      compiler binaries, while USRDATA_PREFIX points to the obj root 
+#      holding the target environment (and also determines where cross-built
+#      libraries, crt*.o, and include files are installed).
 #
 XMAKEENV=      MAKEOBJDIRPREFIX=${CTOOLSDEST} \
                OBJTREE=${OBJTREE} \
@@ -236,7 +236,8 @@ XMAKEENV=   MAKEOBJDIRPREFIX=${CTOOLSDEST} \
                TOOLS_PREFIX=${CTOOLSDEST} \
                USRDATA_PREFIX=${WORLDDEST}
 
-XMAKE=         ${XMAKEENV} ${MAKE} -f Makefile.inc1 -DNO_FORTRAN -DNO_GDB
+XMAKE=         ${XMAKEENV} ${MAKE} -f Makefile.inc1 -DNO_FORTRAN -DNO_GDB \
+               -DBOOTSTRAPPING
 
 # world stage, note the strict path and note that TOOLS_PREFIX is left
 # unset and USRDATA_PREFIX (which defaults to TOOLS_PREFIX) is set to empty,
index cba5353..a346126 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/share/mk/bsd.incs.mk,v 1.3.2.1 2002/07/22 14:21:51 ru Exp $
-# $DragonFly: src/share/mk/bsd.incs.mk,v 1.3 2003/08/08 04:18:41 dillon Exp $
+# $DragonFly: src/share/mk/bsd.incs.mk,v 1.4 2004/04/05 05:30:13 dillon Exp $
 
 .if !target(__<bsd.init.mk>__)
 .error bsd.incs.mk cannot be included directly.
@@ -77,5 +77,9 @@ installincludes:
 .endif
 .endif !target(installincludes)
 
+# include files are not installed when building bootstrap programs
+#
+.if !defined(BOOTSTRAPPING)
 realinstall: installincludes
 .ORDER: beforeinstall installincludes
+.endif
index ba3ca53..5379e88 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/share/mk/bsd.own.mk,v 1.27.2.4 2002/07/22 14:21:51 ru Exp $
-# $DragonFly: src/share/mk/bsd.own.mk,v 1.9 2004/03/22 20:58:15 dillon Exp $
+# $DragonFly: src/share/mk/bsd.own.mk,v 1.10 2004/04/05 05:30:13 dillon Exp $
 #
 # The include file <bsd.own.mk> set common variables for owner,
 # group, mode, and directories. Defaults are in brackets.
@@ -7,19 +7,43 @@
 #
 # +++ variables +++
 #
-# DESTDIR      Change the tree where the file gets installed. [not set]
+# DESTDIR      Change the tree where the file gets installed. [not set].
+#              Typical usage is ${DESTDIR}/usr/bin/...  Note that this
+#              variable is not used to determine where programs access
+#              auxillary data, only where everything is installed.
 #
 # DISTDIR      Change the tree where the file for a distribution
 #              gets installed (see /usr/src/release/Makefile). [not set]
 #
-# USRDATA_PREFIX This is a companion to TOOLS_PREFIX, and is set to
-#              TOOLS_PREFIX by default.  It controls where an entity
-#              should look for ${USRDATA_PREFIX}/usr/... data.  For
-#              example in a buildworld the compiler and includes are
-#              installed in one place (in /usr/obj somewhere), but
-#              will eventually be installworld'd and so these programs
-#              are expected to access /usr data from somewhere other
-#              then where they were initially built/installed.
+# TOOLS_PREFIX Change the tree where the program will search for auxillary
+#              program binaries.  Defaults to <empty>.  e.g. usage is in
+#              the typical form ${TOOLS_PREFIX}/usr/libexec/...
+#
+#              This is primarily used when generating cross-building tools
+#              where the cross-building tools must exec auxillary binaries
+#              which are themselves cross-built tools.
+#
+#              This variable specifies how a program looks for data, it does
+#              NOT specify where a program installs data.
+#
+# USRDATA_PREFIX
+#              Change the tree where the program will search for auxillary
+#              data files.  Defaults to ${TOOLS_PREFIX}
+#
+#              Note that while auxillary program binaries and auxillary
+#              data files are usually installed in the same tree, there
+#              are cases where they might not be.  For example, when
+#              buildworld generates the cross compile tools it must install
+#              auxillary binaries in the ctools obj hiearchy but those
+#              binaries must access data from the world obj hierarchy.
+#
+#              This variable specifies how a program looks for data, it does
+#              NOT specify where a program installs data.
+#
+# INCLUDEDIR
+#              Change the tree where header files are to be installed.
+#              Defaults to /usr/include.  Note that use of INCLUDEDIR
+#              is typically prefixed by ${DESTDIR}.
 #
 # COPY         The flag passed to the install program to cause the binary
 #              to be copied rather than moved.  This is to be used when
 # NLSOWN       National Language Support files owner. [${SHAREGRP}]
 #
 # NLSMODE      National Language Support files mode. [${NOBINMODE}]
-#
-# INCLUDEDIR   Base path for standard C include files [/usr/include]
 
 .if !target(__<bsd.own.mk>__)
 __<bsd.own.mk>__:
@@ -151,7 +173,9 @@ LIBOWN?=    ${BINOWN}
 LIBGRP?=       ${BINGRP}
 LIBMODE?=      ${NOBINMODE}
 
+TOOLS_PREFIX?=
 USRDATA_PREFIX?= ${TOOLS_PREFIX}
+INCLUDEDIR?=   /usr/include
 
 # Share files
 SHAREDIR?=     /usr/share
@@ -179,8 +203,6 @@ NLSGRP?=    ${SHAREOWN}
 NLSOWN?=       ${SHAREGRP}
 NLSMODE?=      ${NOBINMODE}
 
-INCLUDEDIR?=   /usr/include
-
 # Common variables
 .if !defined(DEBUG_FLAGS)
 STRIP?=                -s
index 6b6e689..09e2e23 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/usr.bin/lex/Makefile,v 1.15.2.3 2002/07/22 14:21:52 ru Exp $
-# $DragonFly: src/usr.bin/lex/Makefile,v 1.4 2004/04/05 02:03:24 dillon Exp $
+# $DragonFly: src/usr.bin/lex/Makefile,v 1.5 2004/04/05 05:30:12 dillon Exp $
 #
 # By default, flex will be configured to generate 8-bit scanners only if the
 # -8 flag is given.  If you want it to always generate 8-bit scanners, add
@@ -20,7 +20,7 @@ SRCS=         scan.c ccl.c dfa.c ecs.c gen.c main.c misc.c nfa.c parse.y \
 LFLAGS+=       -is
 CFLAGS+=       -I. -I${.CURDIR}
 INCS=          FlexLexer.h
-INCSDIR=       ${INCLUDEDIR}/g++
+INCSDIR=       ${INCLUDEDIR}/c++
 MLINKS+=       lex.1 flex.1
 MLINKS+=       lex.1 flex++.1
 MLINKS+=       lex.1 lex++.1