aboutsummaryrefslogblamecommitdiff
path: root/Makefile.inc0
blob: 5c4f48bc6b6279b9f268b5ad7ffe5f2f2251a67f (plain) (tree)
1
2
 
                                                                  

















                                                                         
                                                           
                                                         
      









                                                                           

                                                                  

                                                               




                                         
                                          
 







                                                                     


                                                      
                                                 



                                                                                                     
 
                          








                                                                              
                                                                   



                                                                              
                                             



                                                                              
                                                                                
                                                           

                                                         
                                                                                
                                                             



                                                                              
                                              




                                                                              
                                                                   
                                                                         









                                                                              
                                                                                
                                                           









                                                                      
                                                                                
                                                                              
      
#
#	$Id: Makefile.inc0,v 1.16 1999/06/05 21:06:59 julian Exp $
#
# This makefile ensures that the object directory is set according to the
# object format to avoid mixing aout and elf formatted files during the
# transition period.
#
# >> Beware, this makefile  overwrites the local build environment! <<
#

#
# Build things relative to the user's preferred object directory,
# defaulting to /usr/obj if not defined.
#
MAKEOBJDIRPREFIX?=/usr/obj

#
# Variables passed to make work better if they are set as environment
# variables instead of command line options.
#
.if	${MACHINE_ARCH} == "i386" && ${OBJFORMAT} == "aout"
MK_ENV=	MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/${OBJFORMAT}
.endif

#
# We should always use the current set of mk files, not the installed ones.
# This makefile is a wrapper for the backend makefile (Makefile.inc1).
#
MAKE=	make -m ${.CURDIR}/share/mk -f Makefile.inc1

#
# These are the backend targets.
#
BKTGTS=	all checkdpadd clean cleandepend cleandir \
	depend everything hierarchy includes install installmost \
	lint maninstall mk most obj objlink regress rerelease \
	tags update

#
# A generic rule for the backend targets.
#
${BKTGTS} :
	@cd ${.CURDIR}; ${MAKE} ${.TARGET}

# These targets are used during a make release, which is done after a
# make world, so they should use the same OBJDIRPREFIX that was used
# during the make world.
RELTGTS= afterdistribute distribute

${RELTGTS} :
	@cd ${.CURDIR}; ${MK_ENV} ${MAKE} ${.TARGET}

#
# Temporary path and environment for the legacy build.
#
ELFTMP=		${MAKEOBJDIRPREFIX}${.CURDIR}/tmp
ELFTMPPATH=	${ELFTMP}/sbin:${ELFTMP}/bin:${ELFTMP}/usr/sbin:${ELFTMP}/usr/bin:${ELFTMP}/usr/games
LEGACY_ENV=	PATH=${ELFTMPPATH} OBJFORMAT=aout NOTOOLS=1 TOOLROOT=${ELFTMP} \
		MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/aout
XMAKE=		${ELFTMP}/usr/bin/${MAKE}

STARTTIME!= LC_TIME=C date
#
# world
#
# Attempt to rebuild and reinstall *everything*, with reasonable chance of
# success, regardless of how old your existing system is. If building on
# an i386/elf system, build the aout legacy cruft too.
#
world:
	@echo "--------------------------------------------------------------"
	@echo ">>> ${OBJFORMAT} make world started on ${STARTTIME}"
	@echo "--------------------------------------------------------------"
.if target(pre-world)
	@echo
	@echo "--------------------------------------------------------------"
	@echo ">>> Making 'pre-world' target"
	@echo "--------------------------------------------------------------"
	@cd ${.CURDIR}; ${MK_ENV} ${MAKE} pre-world
.endif
	@cd ${.CURDIR}; ${MK_ENV} ${MAKE} buildworld
.if	${MACHINE_ARCH} == "i386" && ${OBJFORMAT} == "elf" && defined(WANT_AOUT)
	@cd ${.CURDIR}; ${LEGACY_ENV} ${XMAKE} legacy-build
.endif
	@cd ${.CURDIR}; ${MK_ENV} ${MAKE} -B installworld
.if	${MACHINE_ARCH} == "i386" && ${OBJFORMAT} == "elf" && defined(WANT_AOUT)
	@cd ${.CURDIR}; ${LEGACY_ENV} ${XMAKE} legacy-install
.endif
.if target(post-world)
	@echo
	@echo "--------------------------------------------------------------"
	@echo ">>> Making 'post-world' target"
	@echo "--------------------------------------------------------------"
	@cd ${.CURDIR}; ${MK_ENV} ${MAKE} post-world
.endif
	@echo
	@echo "--------------------------------------------------------------"
	@echo ">>> ${OBJFORMAT} make world started on ${STARTTIME}"
	@echo ">>> ${OBJFORMAT} make world completed on `LC_TIME=C date`"
	@echo "--------------------------------------------------------------"

#
# buildworld
#
# Build the world in the current object format, plus the legacy aout
# support if the current object format is elf on i386.
#
buildworld	:
	@cd ${.CURDIR}; ${MK_ENV} ${MAKE} buildworld
.if	${MACHINE_ARCH} == "i386" && ${OBJFORMAT} == "elf" && defined(WANT_AOUT)
	@cd ${.CURDIR}; ${LEGACY_ENV} ${XMAKE} legacy-build
.endif

#
# installworld
#
# Install the world in the current object format, plus the legacy aout
# support if the current object format is elf on i386.
#
installworld	:
	@cd ${.CURDIR}; ${MK_ENV} ${MAKE} installworld
.if	${MACHINE_ARCH} == "i386" && ${OBJFORMAT} == "elf" && defined(WANT_AOUT)
	@cd ${.CURDIR}; ${LEGACY_ENV} ${XMAKE} -DNOMAN -DNOINFO legacy-install
.endif