On Mon, Jan 31, 2011 at 7:17 AM, Warner Losh <i...@freebsd.org> wrote: > Author: imp > Date: Mon Jan 31 15:17:47 2011 > New Revision: 218130 > URL: http://svn.freebsd.org/changeset/base/218130 > > Log: > Move the architecture guessing from Makefile.inc1 to Makefile. We > need to do this because variables specified on the command line > override those specified in the Makefile. This is why we also moved > from TARGET to _TARGET in Makefile, and then set TARGET on the command > line when we fork a submake with Makefile.inc1. > > This makes mips/mips work again, even without the workaround committed to > lib/libc/Makefile. > > Modified: > head/Makefile > head/Makefile.inc1 > > Modified: head/Makefile > ============================================================================== > --- head/Makefile Mon Jan 31 11:50:11 2011 (r218129) > +++ head/Makefile Mon Jan 31 15:17:47 2011 (r218130) > @@ -126,6 +126,38 @@ BINMAKE= \ > -m ${.CURDIR}/share/mk > _MAKE= PATH=${PATH} ${BINMAKE} -f Makefile.inc1 > > +# Guess machine architecture from machine type, and vice versa. > +.if !defined(TARGET_ARCH) && defined(TARGET) > +_TARGET_ARCH= ${TARGET:S/pc98/i386/:S/sun4v/sparc64/:S/mips/mipsel/} > +.elif !defined(TARGET) && defined(TARGET_ARCH) && \ > + ${TARGET_ARCH} != ${MACHINE_ARCH} > +_TARGET= ${TARGET_ARCH:C/mips.*e[lb]/mips/:C/armeb/arm/} > +.endif > +# Legacy names, for a transition period mips:mips -> mipsel:mips > +.if defined(TARGET) && defined(TARGET_ARCH) && \ > + ${TARGET_ARCH} == "mips" && ${TARGET} == "mips" > +.warning "TARGET_ARCH of mips is deprecated in favor of mipsel or mipseb" > +.if defined(TARGET_BIG_ENDIAN) > +_TARGET_ARCH=mipseb > +.else > +_TARGET_ARCH=mipsel > +.endif > +.endif > +# arm with TARGET_BIG_ENDIAN -> armeb > +.if defined(TARGET_ARCH) && ${TARGET_ARCH} == "arm" && > defined(TARGET_BIG_ENDIAN) > +.warning "TARGET_ARCH of arm with TARGET_BIG_ENDIAN is deprecated. use > armeb" > +_TARGET_ARCH=armeb > +.endif > +.if defined(TARGET) && !defined(_TARGET) > +_TARGET=${TARGET} > +.endif > +.if defined(TARGET_ARCH) && !defined(_TARGET_ARCH) > +_TARGET_ARCH=${TARGET_ARCH} > +.endif > +# Otherwise, default to current machine type and architecture. > +_TARGET?= ${MACHINE} > +_TARGET_ARCH?= ${MACHINE_ARCH} > + > # > # Make sure we have an up-to-date make(1). Only world and buildworld > # should do this as those are the initial targets used for upgrades. > @@ -173,8 +205,7 @@ cleanworld: > # > > ${TGTS}: > - ${_+_}@cd ${.CURDIR}; \ > - ${_MAKE} ${.TARGET} > + ${_+_}cd ${.CURDIR}; ${_MAKE} TARGET=${_TARGET} > TARGET_ARCH=${_TARGET_ARCH} ${.TARGET} > > # Set a reasonable default > .MAIN: all > > Modified: head/Makefile.inc1 > ============================================================================== > --- head/Makefile.inc1 Mon Jan 31 11:50:11 2011 (r218129) > +++ head/Makefile.inc1 Mon Jan 31 15:17:47 2011 (r218130) > @@ -116,32 +116,6 @@ VERSION!= uname -srp > VERSION+= ${OSRELDATE} > .endif > > -# Guess machine architecture from machine type, and vice versa. > -.if !defined(TARGET_ARCH) && defined(TARGET) > -TARGET_ARCH= ${TARGET:S/pc98/i386/:S/sun4v/sparc64/:S/mips/mipsel/} > -.elif !defined(TARGET) && defined(TARGET_ARCH) && \ > - ${TARGET_ARCH} != ${MACHINE_ARCH} > -TARGET= ${TARGET_ARCH:C/mips.*e[lb]/mips/:C/armeb/arm/} > -.endif > -# Legacy names, for a transition period mips:mips -> mipsel:mips > -.if defined(TARGET) && defined(TARGET_ARCH) && \ > - ${TARGET_ARCH} == "mips" && ${TARGET} == "mips" > -.warning "TARGET_ARCH of mips is deprecated in favor of mipsel or mipseb" > -.if defined(TARGET_BIG_ENDIAN) > -TARGET_ARCH=mipseb > -.else > -TARGET_ARCH=mipsel > -.endif > -.endif > -# arm with TARGET_BIG_ENDIAN -> armeb > -.if defined(TARGET_ARCH) && ${TARGET_ARCH} == "arm" && > defined(TARGET_BIG_ENDIAN) > -.warning "TARGET_ARCH of arm with TARGET_BIG_ENDIAN is deprecated. use > armeb" > -TARGET_ARCH=armeb > -.endif > -# Otherwise, default to current machine type and architecture. > -TARGET?= ${MACHINE} > -TARGET_ARCH?= ${MACHINE_ARCH} > - > KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mipsel/mips > mipseb/mips mips64el/mips mips64eb/mips mipsn32el/mips mipsn32eb/mips powerpc > powerpc64/powerpc sparc64 sparc64/sun4v > .if ${TARGET} == ${TARGET_ARCH} > _t= ${TARGET} > _______________________________________________ > svn-src-head@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org" >
Hello, This breaks "make world" as used by ports tinderbox: [rfarmer@turquoise] /usr/src# env DESTDIR=/tmp/world make -DNO_CLEAN world -------------------------------------------------------------- >>> make world started on Wed Feb 2 11:45:08 PST 2011 -------------------------------------------------------------- "/usr/src/Makefile.inc1", line 120: Malformed conditional (${TARGET} == ${TARGET_ARCH}) "/usr/src/Makefile.inc1", line 122: if-less else "/usr/src/Makefile.inc1", line 124: if-less endif "/usr/src/Makefile.inc1", line 127: Unknown target :. *** Error code 1 Stop in /usr/src. -- Rob Farmer _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"