Module Name: src Committed By: mrg Date: Sun Dec 13 09:25:57 UTC 2009
Added Files: src/compat/dirshack: Makefile Log Message: a hack to force the top-level compat objdir to be created before the library ones are. the Makefile has a long description of what's really going on here. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/compat/dirshack/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Added files: Index: src/compat/dirshack/Makefile diff -u /dev/null src/compat/dirshack/Makefile:1.1 --- /dev/null Sun Dec 13 09:25:57 2009 +++ src/compat/dirshack/Makefile Sun Dec 13 09:25:57 2009 @@ -0,0 +1,30 @@ +# $NetBSD: Makefile,v 1.1 2009/12/13 09:25:57 mrg Exp $ + +# hacky method to get compat multilib base objdirs created before +# make tries to go create the subdirs used for builds. + +# the problem is that make handles objdir creation for subdirs before it +# handles this current directory, so when make cd's into $arch/$libtype +# and from there into the ../../lib dirs, it ends up setting the forced +# MAKEOBJDIRPREFIX to something based upon ${.CURDIR}, since the objdir +# doesn't exist yet. +# +# our solution is simple - from this Makefile we traverse the same list +# of $arch/$libtype's with "BOOTSTRAP_SUBDIR=". then the compat/Makefile +# handles these subdirs as normal, with the base objdir created. + +.include <bsd.own.mk> + +.if ${MKCOMPAT} != "no" +.if make(obj) + +.include "../archdirs.mk" + +MAKEDIRTARGETENV= BOOTSTRAP_SUBDIRS= + +SUBDIR= ${ARCHDIR_SUBDIR:C/^/..\//} + +.endif # make(obj) +.endif # MKCOMPAT != no + +.include <bsd.subdir.mk>